在CodeceptJS中的页面对象和自定义助手中使用带有“I”的自定义函数

问题描述 投票:0回答:3

您好CodeceptJS社区,

  • 有没有办法在页面对象文件中使用自定义函数(在steps_file.js下)作为I. customFunction()。
  • 有没有办法在我的自定义帮助文件中使用本机codeceptjs函数(如I.click())

我在文档和其他来源中找不到任何帮助。有没有办法实现这个目标?

  • 有没有办法在puppeteer助手中使用xpath定位器? this.helpers [ '木偶'] page.click(xpath的)。
helper puppeteer pageobjects codeceptjs
3个回答
0
投票

我在pageObjects中使用自定义步骤时遇到了同样的问题。为了避免它,我将actor(I)作为参数传递给我的pageObject函数。

页面对象:

const I = actor();

       module.exports = {

           doSomething(I){
                 I.login();
           }
};

测试场景:

Scenario('Test something' (I,pageObject)=>{
     pageObject.doSomething(I)
})

在这种情况下,pageObjects可以访问I :)中的所有自定义步骤


0
投票

感谢您分享Matheus。我使用了不同的解决方案。我没有在每个页面对象方法(也是我的一个选项)中编写“I”对象,而是创建了一个自定义帮助文件,并使用如下的puppeteer helper编写所有方法;

async method() {
    await this.helpers['Puppeteer'].click(xpath);
}

我可以在测试和页面对象中调用此方法

I.method();

0
投票

我遇到了同样的问题,当我查看typescripts定义时,我注意到每个页面对象中都需要的actor()具有自定义步骤参数。

所以这对我有用,可以用步骤file.js的自定义步骤扩展qazxsw poi;

const I = actor();

之后,我可以使用页面对象中的所有方法,例如在访问steps_file.js中的方法的测试场景中

© www.soinside.com 2019 - 2024. All rights reserved.