我正在尝试做下面这样的事情
const url = await page.url();
await page.waitFor(url === 'localhost:3000/blogs');
我也试过
await page.waitFor(url).toEqual('localhost:3000/blogs');
并且还使用waitForFunction
方法尝试了所有这些方案,并且无法正常工作。
答案 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的文档。