javascript 使用Playwright提取实际内容中存在延迟的页面内容

fdbelqdn  于 2023-02-11  发布在  Java
关注(0)|答案(1)|浏览(256)

我正在尝试捕获此页面的隐私声明-“https://www.imaginegolf.com/privacy“。但是,如果您查看该页面-加载隐私声明需要一段时间。有没有办法让playwright等待并获取页面内容?我尝试了加载、networkidle、提交和domcontentloaded等选项
源代码示例

import {chromium}  from 'playwright'; // Web scraper Library
import * as fs from 'fs';

(async function () {
    const chromeBrowser = await chromium.launch({ headless: true }); // Chromium launch and options
    const context = await chromeBrowser.newContext({ ignoreHTTPSErrors: true ,
        userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
      });
    const page = await context.newPage();
    await page.goto("https://www.imaginegolf.com/privacy", { waitUntil: 'networkidle', timeout: 60000 });
    let content = await page.content();
    fs.writeFileSync('test.html', content);
    console.log("done")
})();
jm81lzqq

jm81lzqq1#

你可以用expect添加一个检查,并指定一个超时来验证隐私说明是否可见。

await page.goto("https://www.imaginegolf.com/privacy");
  await expect(page.locator('text="PRIVACY NOTICE").toBeVisible({ timeout:5000 });
  let content = await page.content();
  fs.writeFileSync('test.html', content);

只需根据您的需要调整定位器和超时,并在预期成功后继续您的工作流。

相关问题