问题描述
我正在使用CodeceptJS,并且尝试编写一个声明文本并单击“确定”的custom helper。该对话框以iframe模式弹出,表示同意使用cookie。
如果我在方案中写了以下步骤
I.amOnPage('/some-path');
within({frame: '#iframeID'},() => {
I.see('Headline text for dialog');
I.click('OK');
});
// ...
...我的测试似乎正常。
但是当我用它做一个自定义帮助程序并正确配置它以便可以使用时:
const { Helper } = codeceptjs;
class CookieConsent extends Helper {
consentWithCookies() {
const { Puppeteer } = this.helpers;
within({frame: '#iframeID'},() => {
Puppeteer.see('Headline text for dialog');
Puppeteer.click('OK');
});
}
}
module.exports = CookieConsent;
...并将其用作步骤:
I.amOnPage('/some-path');
I.consentWithCookies();
// ...
...它似乎不起作用,因为同意对话框没有像在场景中直接实现时那样被点击。根据某些console.log()
的调试,完全不会调用内部回调。控制台不会引发有关未定义的within
或任何可疑内容的错误。
我怀疑在自定义帮助程序中使用within
无效,或者我做错了一些无法从文档中找出的错误信息。
documentation处的此警告并不能真正弄清内部使用不正确的时间,而使用await
也无济于事。
如果使用不正确,可能会引起问题。如果您看到测试的怪异行为,请尝试将其重构为不在内部使用。建议尽可能在最简单的情况下使用。由于内部返回一个Promise,因此即使您不打算使用返回值,也可能有必要等待结果。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)