Как получить доступ к методам элемента WebdriverIO в помощнике CodeceptJS?

Я использую CodeceptJS вместе с WebDriverIO для написания тестов E2E в моем приложении Angular.

В моем приложении Angular есть некоторые веб-компоненты с теневым DOM. Я хочу получить ссылку на элементы внутри теневых корней и выполнить определенные действия, такие как щелчок, проверка текста и т. Д.

Однако я не уверен, как получить доступ к API WebDriverIO, который затем можно использовать для доступа к теневым корням. Насколько я понимаю, 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'
};


person Manish Gharat    schedule 01.11.2019    source источник


Ответы (1)


Вы можете получить доступ к командам браузера WebdriverIO в пользовательском помощнике CodeceptJS следующим образом:

class MyHelper extends Helper {

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

module.exports = MyHelper;

Если вы хотите получить доступ к методам элемента WebdriverIO, вам необходимо выбрать нужный элемент.

Для результата / возвращаемого значения будут доступны доступные методы.

person Paul Vincent Beigang    schedule 12.11.2019