在playwright中等待JavaScript完成可以使用page.waitForFunction()
方法。该方法允许您等待特定的JavaScript表达式在页面上评估为真。
以下是等待JavaScript完成的步骤:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
// 在此处执行等待JavaScript完成的代码
})();
page.waitForFunction()
方法等待JavaScript完成。该方法接受两个参数:一个JavaScript表达式和一个可选的等待选项对象。await page.waitForFunction(() => {
// 在此处编写您的JavaScript表达式
// 例如,等待特定元素出现:
return document.querySelector('#myElement') !== null;
});
await page.waitForFunction(() => {
// 在此处编写您的JavaScript表达式
}, { timeout: 5000, polling: 'raf' });
在上面的示例中,timeout
设置为5000毫秒(5秒),polling
设置为'raf',表示使用requestAnimationFrame来轮询。
完整的代码示例:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com');
await page.waitForFunction(() => {
// 在此处编写您的JavaScript表达式
// 例如,等待特定元素出现:
return document.querySelector('#myElement') !== null;
});
console.log('JavaScript完成');
await browser.close();
})();
这是一个基本的等待JavaScript完成的示例。根据您的具体需求,您可以根据页面上的不同元素或条件编写自定义的JavaScript表达式来等待。
领取专属 10元无门槛券
手把手带您无忧上云