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>
沒有提交按鈕。輸入也不用於輸入,您只能點擊它來打開一個窗口。
可能是重複的http://stackoverflow.com/questions/9431978/one-solution-for-file-upload-using-selenium的-webdriver-with-java – Chetan 2014-10-10 09:37:00
你有一個輸入元素,你也有'提交'或類似的按鈕嗎?您通常可以通過使用.sendKeys()將完整文件路徑發送到輸入元素,然後單擊提交按鈕來解決上傳問題。 – 2014-10-10 09:37:46
提交按鈕對我來說有點困惑,但也是正確的答案,謝謝 – Maze 2014-10-10 09:57:00