Как вызвать пользовательскую подсказку в CodeCept js? - PullRequest
0 голосов
/ 03 апреля 2020

Как вызвать метод, определенный в customhelper?

MycustomHelper

const { Helper } = codeceptjs;
const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
const expect = chai.expect;

class MyHelper extends Helper {

  async JavaScriptclick(LocatorVale)  {
    await browser.waitForAngularEnabled(true);       
    browser.executeScript("arguments[0].click();", element(by.xpath(LocatorVale))); 

  }

}

module.exports = MyHelper;

Код. js

helpers: {
    MyHelper: {
      require: './myhelper_helper.js',
    },

Stepfile. js

Scenario('Add a new user group', (I, MyHelper) => {  
   MyHelper.JavaScriptclick(‘.badged-button.mat-raised-button.mat-primar')
});

Если я выполню вышеуказанный код, я получу следующую ошибку

   Add a new user group:
     Object of type MyHelper is not defined in container  

Пожалуйста, помогите мне решить эту проблему. Мне нужно нажать на кнопку, но I.click не может найти кнопку. Поэтому я должен был использовать javascriptclick в этом случае. Однако I.executescript тоже не работает. Поэтому мне нужно использовать собственные команды транспортира, так как они работают только так.

1 Ответ

0 голосов
/ 03 апреля 2020

Нет необходимости вызывать помощника по его имени. Все методы добавляются в объект субъекта (I)

Как сказано в документации:

Методы класса Helper будут доступны в тестах в объекте I. Это абстрагирует тестовый сценарий ios от реализации и позволяет легко переключаться между бэкэндами.

https://codecept.io/helpers/#extending -кодепресс js -with-custom-helopers

Итак, в тесте:

Scenario('Add a new user group', (I) => {  
   I.JavaScriptclick(‘.badged-button.mat-raised-button.mat-primar')
});
...