我正在将codeceptjs与puppeteer一起使用。
现在我遇到的问题是我不知道它可以在操纵up中完成,或者我不确定如何使用本地操纵p来完成。
我想定位一个元素并获取该元素的所有信息,然后匹配一个字符串并弹出某些数据。我有一些可以在本地独立操纵up中运行的代码,但是我不确定如何在Codeceptjs中使用它。
因为Puppeteer在codecptjs中有一个帮助程序文件,所以我不只是想再次要求const要求puppeteer,我宁愿直接将查询指向该帮助程序。
let match ='';
const targetEls = await page.$$('#element');
for(let target of targetEls)
{
const cell_content = await page.evaluate(el => el.innerHTML, target);
let county = (cell_content.match(/string_to_match/g) || []).length;
if(county === 2)
{
match = cell_content.match(/http:\/\/(\w*)\.(\w*)\/(\w*)\/(\d*)/gi).pop(); // searches for url within element info and pop it out.
break;
}
}
我遇到的问题是await page.evaluate(el.innerHTML, target)
不能与codeceptjs一起使用,因为我没有在我的步骤代码中实例化p。但是,它位于puppeteer helper.js中
答案 0 :(得分:0)
不确定,您想要什么。 请描述问题代码在哪里。
page
不在全球范围内描述,您可以使用Puppeteer帮助程序的page
对象进行访问。
好像您想在custom helper中创建方法,其中使用伪造助手的访问权限来获取其browser
的值,如on Puppeteer helpers doc所述:
const currentPage = this.helpers['Puppeteer'].page;
await currentPage.$$('#element'); // Get the url of the current page
因此,您的助手将包含您所描述的方法,可以从测试中调用它。