【发布时间】:2017-06-21 09:46:13
【问题描述】:
我们正在使用 Appium 测试工具对 ionic 内置的 android 应用程序进行自动化测试,但它无法识别与 DOM 元素关联的 ID 和类名:
但是当我们从 chrome:inspect 进行调试时,我们能够看到所有的 ID 和类。
【问题讨论】:
标签: android cordova ionic2 appium hybrid-mobile-app
我们正在使用 Appium 测试工具对 ionic 内置的 android 应用程序进行自动化测试,但它无法识别与 DOM 元素关联的 ID 和类名:
但是当我们从 chrome:inspect 进行调试时,我们能够看到所有的 ID 和类。
【问题讨论】:
标签: android cordova ionic2 appium hybrid-mobile-app
Appium 桌面应用程序显示应用程序的本机 UI 元素的对象模型:这包括任何 Web 视图中的本机 UI 组件,例如 Cordova (Ionic) 应用程序中的本机 UI 组件。这是一个伪对象模型,旨在说明原生 UI 元素的层次结构和属性。
但是,当您将 Chrome Devtools 会话连接到应用程序的 Web 视图时,它会向您显示 HTML Object Model (DOM),这不是一回事。这专门为 HTML 元素建模,因此具有特定于 HTML 的概念,例如 ID 和 CSS 类,它们确实转换为 Appium 显示的本机对象模型。
如果您想使用 Appium 对基于 Cordova 的应用程序运行自动化测试,那么您应该使用 wd 和 wd-bridge,它们提供了允许 Appium 直接与 Webview 通信的机制。 This blog post 提供了关于如何使用 Protractor/Jasmine 设置此类测试环境的精彩教程。
然后您可以编写 Protractor 测试,允许您将应用 UI 元素引用为 HTML 组件,例如:
describe('Testing the app', function () {
it('01. should have a header', function () {
var header = element(by.id('header'));
expect(header.getAttribute('class')).toContain('toolbar');
});
});
【讨论】: