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

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

介绍

Playwright是一个强大的Python库,仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。

项目地址:https://playwright.dev/docs/intro

我最喜欢的特点


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

效果

视频https://www.bilibili.com/video/av716217301/?zw

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();
})();
相关文章
|
6月前
|
测试技术
【sgUploadTileImage】自定义组件:浏览器端生成瓦片图,并转换为File文件序列上传瓦片图
【sgUploadTileImage】自定义组件:浏览器端生成瓦片图,并转换为File文件序列上传瓦片图
|
12天前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
15天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
17 1
|
5月前
各种浏览器的userAgent收集
各种浏览器的userAgent收集
60 2
|
2月前
|
Web App开发 存储 安全
Python编写脚本,打开浏览器输入网址,自动化登陆网站
Python编写脚本,打开浏览器输入网址,自动化登陆网站
74 4
|
5月前
|
SQL 缓存 数据管理
数据管理DMS产品使用合集之打开多个SQL窗口,在关闭浏览器重新登录只剩第一个窗口且部分脚本丢失,是什么导致的
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
64 0
|
6月前
|
测试技术 Python
使用 Playwright 控制浏览器的启动、停止和等待
Playwright是一个自动化测试工具,能模拟浏览器行为并灵活控制其启动、停止和等待。通过`sync_playwright().start()`和`.stop()`控制浏览器,使用`slow_mo`参数全局减慢执行速度以方便观察。与Selenium不同,Playwright不支持`time.sleep()`,而是用`page.wait_for_timeout()`进行等待。文中展示了启动浏览器、设置延迟及页面交互的Python代码示例,并提到Playwright的无头模式和等待机制的变化。下文将讨论元素定位方法。
|
6月前
|
Web App开发 测试技术 API
playwright使用:启动浏览器与多种运行方式
本文介绍了Playwright,一个用于浏览器自动化的强大工具,支持Chrome、Firefox和WebKit。展示了如何同步和异步启动浏览器,以及使用`with`语句和`start/stop`方法。通过设置`headless=False`可显示浏览器界面。Playwright的等待机制不同于Selenium,采用`slow_mo`全局减速或`wait_for_timeout`进行等待。文章还展示了填写表单和点击元素的示例,并预告下文将讨论元素定位方法。
|
6月前
|
JavaScript 前端开发
Playwright执行 JavaScript 脚本:探索浏览器自动化的新境界
在Web自动化中,Playwright提供`page.evaluate()`和`page.evaluate_handle()`来执行JavaScript脚本。`page.evaluate()`返回脚本执行结果,而`page.evaluate_handle()`返回JSHandle。示例展示了如何使用它们,如打印网页标题、操作元素及获取页面内容。通过这些方法,可以处理常规方法难以操作的网页元素。
|
6月前
|
Web App开发 测试技术 C++
Playwright安装与Python集成:探索跨浏览器测试的奇妙世界
Playwright是新兴的跨浏览器测试工具,相比Selenium,它支持Chrome、Firefox、WebKit,执行速度快,选择器更稳定。安装Playwright只需一条`pip install playwright`的命令,随后的`playwright install`会自动添加浏览器,无需处理浏览器驱动问题。这一优势免去了Selenium中匹配驱动的烦恼。文章适合寻求高效自动化测试解决方案的开发者。