【发布时间】:2012-02-21 15:19:10
【问题描述】:
我在使用 Webdriver 和 HTMLUnit 为我的 Primefaces 页面编写测试时遇到问题。
我所做的是向页面添加一个简单的 Primefaces 文件上传,它将采用 CSV 文件(目前还没有验证),如下所示:
<p:fileUpload id="listFileUpload" mode="simple" value="#{fileImportView.file}" />
当从 Firefox 使用时,这确实会使 UploadedFile 对象可用于我的侦听器方法。
但是,当通过测试调用相同的侦听器时,生成的 UploadedFile 为空。为了在提交表单之前给 fileupload 字段一个值,我使用 sendKeys 如下:
WebElement drawListFileUpload = webDriver.findElement(By.id("accordionPanel:listFileUpload"));
drawListFileUpload.clear();
drawListFileUpload.sendKeys(file);
谁能看到发生了什么?我四处寻找与我们使用的 HTMLUnit 驱动程序相关的答案,但还没有雪茄……类似的代码似乎适用于相同形式的 Primefaces 日历。
【问题讨论】:
-
你确定 webelement 不为空吗?示例 HTML 代码和 Java 代码中的 ID 确实不同。尝试在发送密钥之前打印出之前的值,这样就知道找到了 webelement。
-
是的,我确定 webelement 不为空,并且它是正确的。如果没有找到,WebDriver 也会抛出异常。
-
在这种情况下,你能提供一个应用程序的链接吗?这段代码看起来不错……
-
恐怕这是一个我无法分享的内部应用程序,抱歉。如果代码看起来不错,是否有生命周期解决方案来解决为什么这不起作用?
标签: primefaces webdriver htmlunit