【问题标题】:How to call a customhelper in CodeCeptjs?如何在 CodeCeptjs 中调用 customhelper?
【发布时间】:2020-07-14 23:40:28
【问题描述】:

如何调用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 也不起作用。因此我需要使用原生量角器命令,因为它只能以这种方式工作。

【问题讨论】:

    标签: protractor codeceptjs


    【解决方案1】:

    没有必要通过它的名字来调用助手。 所有方法都添加到actor (I) 对象中

    如文档中所述:

    Helper 类的方法将在 I 对象的测试中可用。这从实现中抽象出测试场景,并允许在后端之间轻松切换。

    https://codecept.io/helpers/#extending-codeceptjs-with-custom-helopers

    所以,在测试中:

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

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 2012-10-07
      • 2020-03-04
      • 2018-01-11
      • 2018-06-03
      • 2018-10-08
      • 2019-09-27
      • 2018-01-10
      • 2021-07-05
      相关资源
      最近更新 更多