我正在尝试将一些本机操纵符与codeceptjs结合使用,以使用其ID

时间:2019-07-08 13:01:53

标签: javascript codeceptjs

我正在将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中

1 个答案:

答案 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

因此,您的助手将包含您所描述的方法,可以从测试中调用它。