playwright自定义浏览器设备时区经纬度userAgent注入脚本

Posted 程序员石磊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了playwright自定义浏览器设备时区经纬度userAgent注入脚本相关的知识,希望对你有一定的参考价值。

介绍

Playwright是一个强大的Python库,仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。
项目地址:https://playwright.dev/docs/intro
我最喜欢的特点

  • 浏览器上下文并行:对具有浏览器上下文的多个并行、隔离的执行环境,重用单个浏览器实例。
  • 自动等待: Playwright 可以自动等待元素,这将会提高自动化的稳定性,简化测试的编写。
  • 支持多个域、页面和表单: Palywright是一个 进程外(out-of-process) 自动化驱动程序,它不受页内javascript执行范围的限制,可以自动处理多个页面的场景。
  • 覆盖所有场景的功能:支持文件下载、上传,进程外表单,输入、点击,甚至是手机上流行的暗黑模式。
  • 测试移动端:通过设置驱动模式可以模拟移动浏览器的效果。
  • 注入javasript脚本

效果

playwright自定义浏览器设备、时区、经纬度、userAgent、注入脚本

show me the code

基于nodejs

const { chromium , devices } = require('playwright');

(async () => {
  const browser = await chromium.launch({ headless: false });
   //设置设备
  const pixel2 = devices['iPhone 6'];

  //设置指纹
  const context = await browser.newContext({
    ...pixel2,
    //语言
    locale: 'de-DE',
    //时区
    timezoneId: 'America/Adak',
    //经纬度
    longitude: 29.979097,
    latitude: 31.134256,
    colorScheme: 'dark',
    //设置useragent
    userAgent: 'My user agent',
    //屏幕大小
    viewport: { width: 1440, height: 768 }
  });

  const page = await browser.newPage();
    
  await page.goto('https://www.baidu.com');
  //注入本地脚本
  await page.evaluate(() => {
    var body = document.getElementsByTagName("body");
    var iframe = document.createElement('iframe'); 
    iframe.src="https://blog.csdn.net/huangmingleiluo"; 
    iframe.style.cssText = 'top :300px; position:absolute;';
    iframe.width = 1440;
    iframe.height = 300;
    document.body.appendChild(iframe);
  });

  // await browser.close();
})();

以上是关于playwright自定义浏览器设备时区经纬度userAgent注入脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Playwright 中添加自定义标题

如何在 playwright 中运行自定义 js 函数

如何查自己所在位置的经纬度

Playwright入门

在 Playwright 中禁用 Javascript

第一课 移动端&响应式