Appium测试工具无法识别离子应用程序中的元素ID

时间:2017-06-21 09:46:13

标签: android cordova ionic2 appium hybrid-mobile-app

我们正在使用Appium测试工具进行内置离子的Android应用程序的自动化测试,但它无法识别与DOM元素相关的ID和类名称:

enter image description here

但是当我们从chrome调试时:inspect我们能够看到所有的ID和类。

enter image description here

1 个答案:

答案 0 :(得分:3)

Appium Desktop应用程序显示应用程序的本机UI元素的对象模型:这包括任何Web视图中的本机UI组件,例如Cordova(Ionic)应用程序。这是一个伪对象模型,旨在说明本机UI元素的层次结构和属性。

但是,当您将Chrome Devtools会话连接到应用的Webview时,会显示HTML Object Model (DOM),这不是一回事。这专门为HTML元素建模,因此具有特定于HTML的概念,例如ID和CSS类,它们转换为Appium显示的本机对象模型。

如果您想使用Appium对基于Cordova的应用程序运行自动化测试,那么您应该使用wdwd-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');
   });
});