我必须单击一个元素才能在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>
没有提交按钮。输入也不用于输入,你只能点击它打开一个窗口。
答案 0 :(得分:2)
driver.findElement(By.xpath("//div[@id='wwctrl_DateiImportSchritt2Csv_upload0']/input")).sendKeys("Your path");
使用它可以帮助你好运......