java - 使用 Selenium WebDriver 进行 PrimeFaces fileUpload 测试

标签 java jsf file-upload primefaces selenium-webdriver

我已经成功测试了 fileUploadSimple http://www.primefaces.org/showcase/ui/fileUploadSimple.jsf 使用 webElement.sendKeys() 方法。它不适用于自动上传

有什么方法可以测试 PrimeFaces fileUploadAuto http://www.primefaces.org/showcase/ui/fileUploadAuto.jsf使用 Selenium WebDriver?

最佳答案

我也喜欢你的开发。我将分享我的知识,但可能有更好的方法。

服务端的jsf代码

<h:form id="lifeProposalEntryForm" enctype="multipart/form-data">
    <p:fileUpload fileUploadListener="#{AddNewLifeProposalActionBean.handleProposalAttachment}"  
            mode="advanced" multiple="true" sizeLimit="3000000" update="customerEntryPanel attachmentDataList"
            allowTypes="/(\.|\/)(gif|jpe?g|png)$/" id="proposalAttachment"/>    
</h:form>

客户端的html代码

<div id="lifeProposalEntryForm:proposalAttachment" class="ui-fileupload ui-widget">
    <div class="ui-fileupload-buttonbar ui-widget-header ui-corner-top">
        <span class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left ui-fileupload-choose" role="button">
            <span class="ui-button-icon-left ui-icon ui-c ui-icon-plusthick"></span>
            <span class="ui-button-text ui-c">Choose</span>
            <input id="lifeProposalEntryForm:proposalAttachment_input" type="file" multiple="multiple" name="lifeProposalEntryForm:proposalAttachment_input">
        </span>
        <button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left ui-fileupload-upload" type="button" role="button">
            <span class="ui-button-icon-left ui-icon ui-c ui-icon-arrowreturnthick-1-n"></span>
            <span class="ui-button-text ui-c">Upload</span>
        </button>
        <button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left ui-fileupload-cancel" type="button" role="button">
            <span class="ui-button-icon-left ui-icon ui-c ui-icon-cancel"></span>
            <span class="ui-button-text ui-c">Cancel</span>
        </button>
    </div>
......
  • 检索 lifeProposalEntryForm:proposalAttachment_input 的元素通过 id .
  • 输入/发送文件(一个或多个文件)
  • 检索 second button 的元素的 <div id="lifeProposalEntryForm:proposalAttachment" .
  • 点击按钮元素。

Java 中的 Selinium 测试

webElement = driver.findElement(By.id("lifeProposalEntryForm:proposalAttachment_input"));
webElement.sendKeys("C:\\temp\\life\\life_1.jpg");
webElement = driver.findElement(By.xpath("//input[@type='file'and @id='lifeProposalEntryForm:proposalAttachment_input']"));
webElement= driver.findElement(By.xpath(".//*[@id='lifeProposalEntryForm:proposalAttachment']/div[1]/button[1]"));
webElement.click();

按照我说的试试。这是为我工作。

关于java - 使用 Selenium WebDriver 进行 PrimeFaces fileUpload 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474471/

相关文章:

java - Java 是否有任何计划添加隐式 Getters 和 Setters?

java - 遍历集合时将动态 ID 分配给隐藏字段

java - 从单个流中读取多个文件

c# - 如何将图像保存在数据库中并将其显示到 MVC 4 中的 View 中?

java - 使用 RestTemplate.postForEntity 时总是在 ResponseEntity 中得到空响应

java - TThreadPoolServer 客户端 org.apache.thrift.transport.TTransportException : java.net.SocketException:管道损坏

java - p :graphicImage streamContent nullpointer

validation - JSF 2.2 Tomcat 8,Bean 验证

c# - ASP.Net:写文件 block ..HTTP文件上传简历

java - 'mvn' 未被识别为内部或外部命令,