嗨 CodeceptJS 社区,
有没有办法在页面对象文件中使用自定义函数(在 steps_file.js 下)作为I.customFunction() 。
有没有办法在我的自定义帮助文件中使用本机 codeceptjs 函数(如I.click() )
我在文档和其他来源中找不到任何帮助。有什么办法可以做到这一点?
有没有办法在 puppeteer 助手中使用 xpath 定位器?
this.helpers['Puppeteer'].page.click(xpath);
嗨 CodeceptJS 社区,
有没有办法在页面对象文件中使用自定义函数(在 steps_file.js 下)作为I.customFunction() 。
有没有办法在我的自定义帮助文件中使用本机 codeceptjs 函数(如I.click() )
我在文档和其他来源中找不到任何帮助。有什么办法可以做到这一点?
有没有办法在 puppeteer 助手中使用 xpath 定位器?
this.helpers['Puppeteer'].page.click(xpath);
我遇到了同样的问题,当我查看打字稿定义时,我注意到actor()
每个页面对象等都需要它有自定义步骤参数。
所以这对我来说可以扩展const I = actor();
自定义步骤表单steps_file.js;
const customSteps = require('./steps_file');
const I = actor(customSteps());
之后,我可以使用页面对象中的所有方法,例如在从 steps_file.js 访问方法的测试场景中
感谢您分享马修斯。我使用了不同的解决方案。我没有在每个页面对象方法中编写“I”对象(这也是我的一个选择),而是创建了一个自定义帮助文件并使用 puppeteer 帮助程序编写了所有方法,如下所示;
async method() {
await this.helpers['Puppeteer'].click(xpath);
}
我可以在测试和页面对象中调用这个方法
I.method();
我在 pageObjects 中使用自定义步骤时遇到了同样的问题。为了避免这种情况,我将演员 (I) 作为参数传递给我的 pageObject 函数。
页面对象:
const I = actor();
module.exports = {
doSomething(I){
I.login();
}
};
测试场景:
Scenario('Test something' (I,pageObject)=>{
pageObject.doSomething(I)
})
在这种情况下,pageObjects 将可以访问 I 中的所有自定义步骤:)