SeleniumWebDriver点击输入元素上传文件冻结



我必须点击一个元素,才能在JUnit中上传一个带有Selenium WebDriver的CSV文件。输入如下:

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

如果我点击输入元素,就会打开一个操作系统窗口,我必须在其中选择要上传的文件。我的问题是,如果我使用Selenium来点击这样的输入:

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

它确实打开了操作系统窗口,但冻结了我的整个测试,没有任何异常。如果手动关闭窗口,测试将继续。

在代码的另一个地方,我必须下载一个文件。它非常相似,只是它不是一个输入元素,而是一个锚元素(<a>),并且在那里工作得很好。

那么,如何在不冻结我的测试的情况下点击一个打开操作系统窗口的输入元素呢?也尝试了submit(),但即使使用该方法也无法打开窗口。

我正在使用:
Windows 7
Firefox 32.0.3
Selenium 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>

没有提交按钮。输入也不用于键入,您只能单击它打开一个窗口。

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

用这个它对你有效祝你好运。。。

最新更新