【问题标题】:How to add custom headers in Playwright如何在 Playwright 中添加自定义标题
【发布时间】:2020-10-17 16:27:40
【问题描述】:
headers["user-agent"] = fakeUa();
  console.log(fakeUa())
  let firstReq = true;
    page.route('**/*', route => {
    const request = route.request()
    //console.log(request.url(), JSON.stringify(request.headers()));
    
    if("x-j3popqvx-a" in request.headers()){
        headers = request.headers();
        //console.log(headers);
        console.log("exiting");
        return;
    }
    else {
        console.log("in");
        return route.continue({headers: headers});
    }
  });
  let pageRes = await page.goto(url, {waitUntil: 'load', timeout: 0});

我想在向 url 发送请求时添加假用户代理。但它不会添加假用户代理,而是使用默认用户代理。

【问题讨论】:

    标签: node.js playwright


    【解决方案1】:

    虽然在puppeteer 中可以使用page.setUserAgent() 方法应用自定义UA 和page.setExtraHTTPHeaders() 设置任何自定义标题,但在playwright 中您可以设置自定义用户代理(@987654330 @) 和标题 (extraHTTPHeaders) 作为 browser.newPage()browser.newContext() 的选项,例如:

    const page = await browser.newPage({ 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 browser.newPage({ extraHTTPHeaders: 'Cache-Control': 'no-cache' })
    

    编辑:如果您将它与newContext() 一起使用,用法如下所示(确保在newContext 的设置中设置userAgent 而不是newPage!):

    const context = await browser.newContext({ userAgent: 'hello' })
    const page = await context.newPage()
    // to check the UA:
    console.log(await page.evaluate(() => navigator.userAgent))
    

    【讨论】:

    • 请解释一下剧作家的语境概念?
    • BrowserContext 是一种新的浏览器会话,在剧作家中比在 puppeteer 中更强调,特别是因为它有助于多浏览器/多设备执行。您可以在文档中阅读有关其概念的更多信息 herehere
    • .newPage({ userAgent: fakeUa()})。这就是我设置标题的方式,但是一旦满足条件并且代码退出并且我打印标题它们与默认值相同
    • 如果您使用的是context,请确保在newContext() 而不是newPage 中设置userAgent 选项。更高级别定义了用户代理。如果您有BrowserContext 并且您在两者中都设置了UA,那么您可以对其进行测试,哪一个将在标题中。请参阅上面的编辑。
    • 请注意:如果 userAgent 使用 newContext() 或 newPage 设置,它会一直工作,直到您在页面上。一旦使用了 next goto(),userAgent 就会丢失。也许是错误,也许是功能。 :( 幸运的是,.launch ({args:[ '--user-agent=My Agent']}) 对我有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2010-12-30
    • 1970-01-01
    • 2018-11-28
    • 2018-01-17
    • 1970-01-01
    • 2016-07-08
    相关资源
    最近更新 更多