ui-automation - UIATable 操作 GetCellValue 引发错误“由于从 UI 自动化继承的 API 调用缺失或损坏而失败”
问题描述
我正在使用 UI 自动化插件来自动化和测试在 Java 窗口中包含 HTML 对象的应用程序。我在我的对象存储库中识别并保存了 UIATable,并且以下方法可以正常工作:
MsgBox UIAWindow("**").UIAObject("**").UIATable("**").RowCount 'Prints 3
MsgBox UIAWindow("**").UIAObject("**").UIATable("**").ColumnCount 'Prints 5
但是,当我尝试使用以下任何方法获取单元格值时:
MsgBox UIAWindow("**").UIAObject("**").UIATable("**").GetCellValue(1,1) 'Error
MsgBox UIAWindow("**").UIAObject("**").UIATable("**").GetCellData(1,1) 'Error
MsgBox UIAWindow("**").UIAObject("**").UIATable("**").GetCellName(1,1) 'Error
我收到一条错误消息,并显示以下消息:
由于不可恢复的错误,测试运行无法继续。<0x80070057> 由于从 UI 自动化继承的 API 调用缺失或损坏而失败。
我正在使用UFT 14.02。这个错误的可能原因是什么,我可以做些什么来解决这个问题?
解决方案
查看UFT 14 产品可用性矩阵。您需要“UFT GUI 测试 UI 自动化插件”部分。
UFT 中的 UI 自动化框架支持 JavaFX,但不支持 HTML。这可能就是为什么有些方法有效而有些方法无效的原因。即您可以读取java 表,但不能验证html 内容。
(我假设您正在针对 javaFX 应用程序进行测试?-您只是说 java)
值得一提的是,“不支持”并不意味着它不起作用,只是它没有经过 Microfocus 的全面测试和认证。
此外,如果您查看支持页面,它有一个重要说明:
注意:可用的测试对象和方法完全取决于应用程序中实现的属性和模式。我们建议您熟悉应用程序对象的属性 - 特别是控件类型 ID 和支持的模式,以了解您可以使用哪些测试对象和方法。
所以错误可能不是你,也可能不是 UFT。这可能是交付被测应用程序的结果。
你可以尝试的东西...
- 尝试实际的 java 插件 - 可以同时使用多个插件 - 即使它只是一个对象的解决方法。
- 尝试标准的 windows 对象标识符。
- 确认应用程序是为支持 Microsoft 的 UI 自动化而构建的
- 更新到最新的 UFT(撰写本文时为 UFT 15.01,现在也称为 UFT One)以确保您的库尽可能是最新的
如果一切都失败了,请告诉我。UFT 在 GUI 方面非常灵活,根据您需要如何与表交互,我们可以尝试其他一些解决方案。
推荐阅读
- git - 如何管理一个git项目的多个副本
- php - Zend 服务器 - 启用 Windows 身份验证 / NTLM / Apache mod_authnz_sspi
- mongodb - 构建一个mongo容器并导入数据
- verilog - 如何在 FPGA 的 PMOD 键盘上保存按键条目
- javascript - 数据表:单击按钮不打开视图
- windows - 如何在 Windows 中以特定顺序连接多个降价文件
- karate - 如何在空手道框架功能文件中的 POST/GET 请求中将 apikey 作为授权传递
- shopify - Shopify 禁用渠道中的产品(发布评估)
- javascript - 如何使 pdf.js 库在 Internet Explorer 中工作
- amazon-web-services - 无法连接到可公开访问的 AWS RDS