2017-05-10 32 views
0

私はのchromeの下にnode.js(javascript)のセレンのwebdriverを使用しています。いくつかのテストでSelenium Webdriver:自分の相対パス(JavaScript)を使用してファイルをアップロードするには

、私は彼の相対パスを使用してファイルをアップロードする必要があり(アップロードする私のファイルは、テストファイルと同じディレクトリにある)

var fileInput = driver.findElement(webdriver.By.xpath('//*[@id="j_idt69:j_idt70_input"]')); 
fileInput.sendKeys('./file.xml'); 

不思議な私のテストが失敗したと私は、このエラーをキャッチ:私のテストは、貴様の場所で使用されるようにintentedされているため、実際

My error handler... WebDriverError: unknown error: path is not absolute: 

は相対パスを使用しています(仮想マシン、ジェンキンス、PC ...)。 絶対パスは私には役に立たない。

提案

+0

絶対パスを動的に見つけて使用する方法はありますか? –

+0

'./file.xml'あなたのファイルはプロジェクトディレクトリにありますか?そうですか? – kushal

+0

@kushal:はい – firasKoubaa

答えて

0

私はそれをこのように解決した:

は、動的に絶対パスを検出し、私のファイル名でそれをCONCAT:このノードコマンドを使用して現在のディレクトリパスを検出するために

process.cwd()

結果のパスは次のとおりです。var path = process.cwd()+'/file.xml';

アップロードアクション:fileInput.sendKeys(path);

1

sendKeys引数としての相対パスはサポートされていません。

System.getProperty("user.dir")を使用すると、現在の作業ディレクトリのパスを取得できます。

String path=System.getProperty("user.dir") 
fileInput.sendKeys(path+"\\file.xml"); 
関連する問題