不支持的目标类型:boolean,使用puppeteer waitFor函数

时间:2018-04-19 14:27:17

标签: jest puppeteer

我正在尝试做下面这样的事情

const url = await page.url();
await page.waitFor(url === 'localhost:3000/blogs');

我也试过

await page.waitFor(url).toEqual('localhost:3000/blogs');

并且还使用waitForFunction方法尝试了所有这些方案,并且无法正常工作。

1 个答案:

答案 0 :(得分:1)

waitFor函数接受选择器,函数或超时。如果你想看看url是否等于某个东西,那么为它写一个函数。将url作为参数传递,以便您可以在浏览器上下文中阅读它。

const url = await page.url();
await page.waitFor((url)=> url === 'http://localhost:3000/blogs', url); // <-- use a function

此外,您可以使用内置代码的浏览器来等待网址匹配。

await page.waitFor(()=> location.href === 'http://localhost:3000/blogs');

注意,由于您使用===来匹配字符串,因此请确保包含http://,因为location.href将使用协议输出网址。

如果您想使用jest,那么您可以使用expect并将其包装在it块中。

it('should contain specific url', async () => {
    const url = await page.url();
    expect(url).toContain('localhost:3000/blogs');
});

以下是jest and puppeteer together的文档。