【问题标题】:Appium Testing tool unable to recognise element ID in ionic appAppium测试工具无法识别离子应用程序中的元素ID
【发布时间】:2017-06-21 09:46:13
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    但是,当您将 Chrome Devtools 会话连接到应用程序的 Web 视图时,它会向您显示 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');
       });
    });
    

    【讨论】:

    • 这里是否需要遵循任何具体步骤,因为在我的应用程序测试中 id 和 class 为空。
    • 我已经更新了我的答案,详细说明了如何为基于 Cordova 的应用程序实施自动化测试。
    猜你喜欢
    • 1970-01-01
    • 2020-10-31
    • 2020-12-20
    • 2020-03-31
    • 2019-04-22
    • 2018-11-04
    • 2020-05-17
    • 1970-01-01
    • 2018-04-27
    相关资源
    最近更新 更多