首页 > 解决方案 > 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。这个错误的可能原因是什么,我可以做些什么来解决这个问题?

标签: ui-automationhp-uftuft14

解决方案


查看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 方面非常灵活,根据您需要如何与表交互,我们可以尝试其他一些解决方案。


推荐阅读