使用 Selenium WebDriver 进行 PrimeFaces 文件上传测试

2023-12-14

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

有没有办法测试 PrimeFaces fileUpload Autohttp://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 by id.
  • Put/sendkey 文件(一个或多个文件)
  • 检索元素second button of <div id="lifeProposalEntryForm:proposalAttachment".
  • 单击按钮元素。

Java 中的 Selen 测试

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

按照我提到的尝试。这对我来说是工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Selenium WebDriver 进行 PrimeFaces 文件上传测试 的相关文章

随机推荐

  • PHP 中用于 Postgresql 查询的列名称的绑定变量

    我需要从 PHP 动态生成需要在 Postgresql 中更新的列名 这是代码和错误 Col dog Num pic query params array user id gt CustomerID dog path gt filePath
  • 越狱iOS设备的应用程序:一致的后台操作

    我是名为 AirFloat 的 Cydia 调整项的作者 实现 AirPlay 音频协议 以前称为 AirTunes 的应用程序 可以传输音频to您的 iOS 设备 AirFloat 最初是一个 App Store 应用程序 直到被 App
  • iPhone X 上停用时 applicationDidBecomeActive 触发

    还有其他人遇到麻烦吗applicationDidBecomeActive错误地开火失活新 iPhone X 上的应用程序是什么 这是我的测试应用程序 class ViewController UIViewController require
  • Node MSSQL - 如何使用内置的 SQL 注入保护

    我正在研究 Node 的 MSSQL 模块中内置的 SQL 注入保护 https www npmjs com package mssql injection 但我并没有完全理解他们如何清理查询值的示例 我猜是request input my
  • Terraform 将 SSL 证书绑定到 Azure WebApp

    我最近一直在尝试使用 Azure 中的 Terraform 将域和 SSL 证书绑定到 Web 应用程序 我在这方面没有运气 而且文档有点混乱 地面上很简单 我在制定计划时遇到的错误是 Error parsing subscriptions
  • JavaScript 中的继承

    当我使用原型在 Javascript 中实现继承时 我遇到了一个奇怪的错误 我想知道是否有人可以解释这一点 在下面的代码中 我正在尝试从父类派生子类 parent class function byref if parent class p
  • 为什么使用ByRef时变量应该被赋值为“.Value”?

    有什么区别 A Something and A Value Something 我发现这仅在以下情况下才有效 Value用来 function main A Original A B Original B SetByRef1 ref A S
  • 在 Joomla 中添加特定于页面的 javascript 或 CSS

    如何仅在 Joomla 的某篇文章中包含 javascript 或 CSS 文件 我有一篇文章需要 jQuery UI 和相关主题 由于它没有在任何其他页面上使用 因此我只需要在这篇特定的文章中使用它 添加必要的
  • 为什么我的应用程序显示我正在请求通讯录权限?

    我有一个表盘应用程序 显示我正在请求联系人权限 但我没有 我不明白这是为什么 我有应用程序内结算功能 并且可以访问 Google Fit 数据 以及 Google Analytics 以下是我的清单中的权限列表
  • 如何基于现有文件数据库创建具有架构的内存数据库

    我有一个现有的数据库 其结构在整个应用程序中使用 数据库的实例会定期轮换 我有一个数据库文件template sqlite它用作所有新创建的数据库的模板 我想使用它 而不是创建脚本 这样我只需维护一个文件 即空数据库模板本身 我想基于该模板
  • 什么标准调用实际上是宏

    我问了一个问题here about assert它在标准中作为宏而不是函数实现 这给我带来了一个问题 因为这样的方式assert从接受参数的角度来看 它似乎是一个函数 assert true 因此我尝试将其用作 std assert tru
  • Array.fill 和 for 循环创建数组有什么区别[重复]

    这个问题在这里已经有答案了 我正在使用 React js 创建一个地下城爬行游戏 并使用 Array fill 0 初始化棋盘 但是当我在二维数组中设置一个元素时 它将整个数组 列 设置为 player 而不是单一元素 我还有一个creat
  • VFP OleDb 的 Sql 参数化语法错误

    我正在尝试为 DBF 文件创建 SQL 参数化更新命令 Visual Fox Pro 我不知道为什么 但我在 DbCommand ExecuteNonQuery 上有一个 语法错误 异常错误消息是 语法错误 我没有任何额外的信息 strin
  • 如何查找 .NET 命名空间的程序集名称,例如 Microsoft.WindowsAzure.ServiceRuntime

    我有一个一般性问题和具体示例 根据 Stack Overflow 上有关命名空间程序集的所有类似问题 这应该很容易 最常见的答案是在问题中找到的我如何知道导入特定 NET 命名空间时要包含哪些引用 所有 MSDN 文档页面都提到命名空间和程
  • 循环,每次迭代仅在 jQuery 延迟之后发生,何时/然后可能没有递归?

    我想在循环中调用 jQuery 延迟函数 但每次迭代都应该等待上一个迭代使用延迟函数完成when function num of iterations var arr for var i 1 i lt num of iterations i
  • 将鼠标悬停在文本上时显示工具提示

    我想创建扩展 当我将鼠标悬停在文本上时 该扩展允许显示自定义消息 例如 test text 应该给出工具提示 OK 而不是当前的 ITrackin 我试着跟随https learn microsoft com en us visualstu
  • Visual Studio - 不同的断点集

    在 Visual Studio 2015 及更高版本 中 是否可以拥有多组断点 我有几个场景 我需要调试 但对于每个场景 我希望有不同的断点集 手动启用 禁用它们非常耗时 您可以从断点窗口导出和导入断点 然后根据需要导入它们 或者 如果您不
  • 有没有办法通过 .onLongPressGesture 将第三个切换选项添加到开/关状态?

    我已经设置了一个切换开关 如下图所示 可以打开 关闭图像或通过 失败 我正在尝试使用长按手势向图像添加第三种状态 这会将图像变成带有斜杠图标的灰色 我已经在文本元素中实现了这一点 因为 at is 没有 bool 条件 但经过多次搜索后无法
  • 创建未刷新的文件输出缓冲区

    我正在尝试解决在 Linux 上运行的几个不同语言的程序中未刷新的文件 I O 缓冲区出现的问题 刷新缓冲区的解决方案很简单 但是未刷新缓冲区的问题是随机发生的 我对如何创建 重现 和诊断这种情况感兴趣 而不是寻求可能导致这种情况的帮助 这
  • 使用 Selenium WebDriver 进行 PrimeFaces 文件上传测试

    我已经成功测试了 fileUploadSimplehttp www primefaces org showcase ui fileUploadSimple jsf使用 webElement sendKeys 方法 它不适用于自动上传 有没有