2
我在为我的Primefaces页面使用Webdriver和HTMLUnit编写测试时遇到了问题。使用Webdriver进行PrimeFaces文件上传
我做什么是添加一个简单的文件上传Primefaces的页面,这将需要一个CSV文件(没有验证尚未),像这样:
<p:fileUpload id="listFileUpload" mode="simple" value="#{fileImportView.file}" />
这确实使一个UploadedFile的对象从Firefox中使用时可用于我的侦听器方法。
但是,当通过测试调用相同的侦听器时,生成的UploadedFile为空。要提交表单之前给文件上传字段的值,我使用sendKeys像这样:
WebElement drawListFileUpload = webDriver.findElement(By.id("accordionPanel:listFileUpload"));
drawListFileUpload.clear();
drawListFileUpload.sendKeys(file);
任何人都可以看到发生了什么?我查找了一个与我们使用的HTMLUnit驱动程序有关的答案,但目前还没有雪茄......类似的代码似乎对于Primefaces日历在同一个表单中工作正常。
Here's a link to access the application
您确定webelement不为null吗?示例HTML代码和Java代码中的Id确实不同。尝试在发送密钥之前打印出以前的值,以便知道找到了webelement。 – 2012-02-21 15:35:45
是的,我确定webelement不是null,而且它是正确的。如果找不到,WebDriver也会抛出异常。 – Aedilum 2012-02-22 10:12:48
在这种情况下,你能否提供一个链接到应用程序?代码的位似乎很好... – 2012-02-22 10:28:34