如何在CodeceptJS帮助器中访问WebdriverIO元素方法?

时间:2019-11-01 11:10:57

标签: javascript webdriver e2e-testing webdriver-io codeceptjs

我正在使用CodeceptJS和WebDriverIO在Angular App中编写E2E测试。

我的Angular应用程序包含一些具有影子DOM的Web组件。我想要获得对阴影根内部元素的引用,并执行某些操作,例如单击,检查文本等。

但是,我不确定如何访问WebDriverIO API,然后可以使用它来访问影子根。据我了解,CodeceptJS本身没有提供访问影子根元素的抽象层,这就是为什么我尝试使用WebDriverIO的原因。 WebDriverIO具有可用于访问阴影根(https://webdriver.io/docs/api/element/shadow$.html

中的元素的功能。

这是我的设置:

codecept.conf.js

exports.config = {
  output: './report/e2e',
  helpers: {
    WebDriver : {
      smartWait: 5000,
      url: 'http://localhost:4200',
      browser: "chrome",
      restart: false,
      windowSize: "1920x1680",
      timeouts: {
        "script": 60000,
        "page load": 10000
      }
    }
    DomHelper:{
      require: './e2e/src/helpers/dom.helper.js'
    }
  },
  include: {
    I: './e2e/src/steps_file.js'
  },
  mocha: {},
  bootstrap: null,
  teardown: null,
  hooks: [],
  gherkin: {
    features: './e2e/src/features/**/*.feature',
    steps: ['./e2e/src/step_definitions/basic.steps.js']
  },
  plugins: {
    screenshotOnFail: {
      enabled: true
    },
    wdio: {
      enabled: true,
      services: ['selenium-standalone']
    }
  },
  tests: './e2e/src/**/*.test.js',
  name: 'test-app'
};

1 个答案:

答案 0 :(得分:0)

您可以在自定义CodeceptJS帮助器中访问WebdriverIO浏览器命令,如下所示:

class MyHelper extends Helper {

  async accessWd() {
    const browser = this.helpers.WebDriver.browser;
  }
}

module.exports = MyHelper;

如果要访问WebdriverIO元素方法,则需要选择所需的元素。

结果/返回值将具有可用的方法。