2014-10-10 76 views
1

我必須單擊一個元素才能在JUnit中使用Selenium WebDriver上載CSV文件。輸入如下:Selenium WebDriver單擊輸入元素上傳文件凍結

<input type="file" name="upload0" size="56" value="" id="DateiImportSchritt2Csv_upload0"/> 

如果我點擊輸入元素上打開一個操作系統窗口,我要選擇我的文件上傳。 我的問題是,如果我用一下這樣的輸入硒:

driver.findElement(By.xpath("//div[@id='wwctrl_DateiImportSchritt2Csv_upload0']/input")).click(); 

它確實打開OS窗口,但凍結我的整個測試,沒有任何例外。如果我手動關閉窗口,我的測試會繼續。

在我的代碼的另一個地方,我必須下載一個文件。它非常相似,除了它不是一個輸入元素,而是一個錨元素(<a>),它在那裏工作得很好。

那麼如何在不凍結我的測試的情況下單擊一個打開OS窗口的輸入元素?也嘗試submit(),但即使窗口不打開該方法。

我使用:
Windows 7的
火狐32.0.3
硒的webdriver 2.43.1
的JUnit 4

編輯:
整個div元素看起來是這樣的:

<div class="group " id="wwctrl_DateiImportSchritt2Csv_upload0"> 
<label id="label_DateiImportSchritt2Csv_upload0" for="DateiImportSchritt2Csv_upload0"> 
<span>CSV-Importdatei für Ranglisten auswählen</span> 
</label> 
<p class="labelInfo" id="help_DateiImportSchritt2Csv_upload0"> 

    Bitte wählen Sie eine für den Import bestimmte Datei aus. 

</p> 
<input type="file" name="upload0" size="56" value="" id="DateiImportSchritt2Csv_upload0"/> 
</div> 

沒有提交按鈕。輸入也不用於輸入,您只能點擊它來打開一個窗口。

+0

可能是重複的http://stackoverflow.com/questions/9431978/one-solution-for-file-upload-using-selenium的-webdriver-with-java – Chetan 2014-10-10 09:37:00

+1

你有一個輸入元素,你也有'提交'或類似的按鈕嗎?您通常可以通過使用.sendKeys()將完整文件路徑發送到輸入元素,然後單擊提交按鈕來解決上傳問題。 – 2014-10-10 09:37:46

+0

提交按鈕對我來說有點困惑,但也是正確的答案,謝謝 – Maze 2014-10-10 09:57:00

回答

2
driver.findElement(By.xpath("//div[@id='wwctrl_DateiImportSchritt2Csv_upload0']/‌​input")).sendKeys("Your path"); 

使用此它爲你好運......

相關問題