使用Selenium WebDriver进行PrimeFaces fileUpload测试 [英] PrimeFaces fileUpload testing with Selenium WebDriver

查看:161
本文介绍了使用Selenium WebDriver进行PrimeFaces fileUpload测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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

解决方案

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

jsf代码在服务器端

 < h:form id =lifeProposalEntryFormenctype =multipart / form-data> 
< p:fileUpload fileUploadListener =#{AddNewLifeProposalActionBean.handleProposalAttachment}
mode =advancedmultiple =truesizeLimit =3000000update =customerEntryPanel attachmentDataList
allowTypes = /(\.|\/)(gif|jpe?g|png)$/id =proposalAttachment/>
< / h:表格>

客户端的html代码

 < div id =lifeProposalEntryForm:proposalAttachmentclass =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-chooserole =button>
< span class =ui-button-icon-left ui-icon ui -c ui-icon-plusthick>< / span>
< span class =ui-button-text ui-c>选择< / span>
< input id =lifeProposalEntryForm:proposalAttachment_inputtype =filemultiple =multiplename =lifeProposalEntryForm:proposalAttachment_input>
< / span>




  • 检索元素 或更多的文件)
  • 检索< div id =lifeProposalEntryForm:proposalAttachment的第二个按钮的元素

  • 点击按钮元素。 in java

      webElement = driver.findElement(By.id(lifeProposalEntryForm:proposalAttachment_input)); 
    webElement.sendKeys(C:\\\\\\\\\\\ 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();

    请尝试我提到的。这是我的工作。

    I've successfully tested fileUploadSimple http://www.primefaces.org/showcase/ui/fileUploadSimple.jsf with webElement.sendKeys() method. It doesn't work with Auto upload

    Is there any way to test PrimeFaces fileUploadAuto http://www.primefaces.org/showcase/ui/fileUploadAuto.jsf with Selenium WebDriver?

    解决方案

    I also have like your development. I am going to share my knowledge but there might a better way.

    jsf-code at servier side

    <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-code at client side

    <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>
    ......
    

    • Retrieve the element of lifeProposalEntryForm:proposalAttachment_input by id.
    • Put/sendkey the file (one or more files)
    • Retrieve the element of second button of <div id="lifeProposalEntryForm:proposalAttachment".
    • Click the button element.

    Selinium Testing in java

    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();
    

    Try as I mention. It is work for me.

    这篇关于使用Selenium WebDriver进行PrimeFaces fileUpload测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆