これが問題です。いくつかの連結の後、私はたまたまこのような文字列を持っているかもしれません
"C:/shared_resources/samples\\import_packages\\catalog.zip"
またはこれさえ
"C:/shared_resources/samples/subfolder/..\\import_packages\\catalog.zip"
そのような文字列を均一な区切り文字を持つパスに変換するコードが必要です。
頭に浮かぶ最初の解決策は を使用することですがnew File(srcPath).getCanonicalPath()
、ここが難しい部分です。このメソッドは、テストが呼び出されるシステムに依存します。ただし、文字列をリモート マシン (ブラウザーを備えた Selenium Grid ノード) に渡す必要があり、あちこちのシステムはそれぞれ Linux と Windows です。したがって、やろうとするとnew File("C:/shared_resources/samples\\import_packages\\catalog.zip").getCanonicalPath()
のような結果になります"/home/username/ourproject/C:/shared_resources/samples/import_packages/catalog.zip"
。また、鈍い正規表現の置換を使用することも、あまり良い解決策ではないようです。
暗黙的に絶対化しようとせずに、パスを切り詰めて区切り文字を統一する (そしておそらく..
's を解決する) 方法はありますか?