2020 年初,微软发布了一个自动化测试工具——Playwright,不少人称它是小白神器。

Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox 和 WebKit 浏览器,连代码都不用写,就能实现自动化功能。

Playwright具有以下功能特性:

任何浏览器 • 任何平台 • 一个 API

  • 跨浏览器。Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。

  • 跨平台。支持在 Windows、Linux 和 macOS 上进行本地测试或在 CI 上进行测试

  • 跨语言。支持在TypeScript、JavaScript、Python、.NET、Java 中使用 Playwright API

Playwright安装

要使用Playwright,需要Python 3.7版本及以上,可以直接使用pip3,命令如下:

pip3 install playwright

然后你还需要进行一些初始化操作:

playwright install

接着,Playwrigth会安装Chromium, Firefox and WebKit浏览器并配置一些驱动,然后你就可以启动浏览器进行自动化操作了。

代码示例

页面截图:此代码片段在 Chromium、Firefox 和 WebKit 中导航到 whatsmyuseragent.org,并保存了 3 个屏幕截图。

const playwright = require('playwright');(async () => {for (const browserType of [playwright.chromium, playwright.firefox, playwright.webkit]) {const browser = await browserType.launch();const context = await browser.newContext();const page = await context.newPage();await page.goto('http://whatsmyuseragent.org/');await page.screenshot({ path: `example-${browserType.name()}.png` });await browser.close();}
})();

地理位置定位:此代码段在给定地理位置的设备上模拟 Mobile Safari,导航到 maps.google.com,执行操作并截取屏幕截图。

const { webkit, devices } = require('playwright');
const iPhone11 = devices['iPhone 11 Pro'];(async () => {const browser = await webkit.launch();const context = await browser.newContext({...iPhone11,locale: 'en-US',geolocation: { longitude: 12.492507, latitude: 41.889938 },permissions: ['geolocation']});const page = await context.newPage();await page.goto('https://maps.google.com');await page.click('text="Your location"');await page.waitForRequest(/.*preview\/pwa/);await page.screenshot({ path: 'colosseum-iphone.png' });await browser.close();
})();

在浏览器页面执行脚本:此代码片段在 Firefox 中导航到 example.com,并在页面上下文中执行脚本。

const { firefox } = require('playwright');(async () => {const browser = await firefox.launch();const context = await browser.newContext();const page = await context.newPage();await page.goto('https://www.example.com/');const dimensions = await page.evaluate(() => {return {width: document.documentElement.clientWidth,height: document.documentElement.clientHeight,deviceScaleFactor: window.devicePixelRatio}});console.log(dimensions);await browser.close();
})();

拦截网络请求:这段代码片段为WebKit页面设置请求路由,以记录所有的网络请求。

const { webkit } = require('playwright');(async () => {const browser = await webkit.launch();const context = await browser.newContext();const page = await context.newPage();// Log and continue all network requestsawait page.route('**', route => {console.log(route.request().url());route.continue();});await page.goto('http://todomvc.com');await browser.close();
})();

目前,playwright已经在Github上累计标星31.6K,累计分支1.4K(Github地址:https://github.com/microsoft/playwright),感兴趣的伙伴们可以试试。

微软开源的这个自动化测试神器,我知道的太晚了相关推荐

  1. 2022年新一代最强开源UI自动化测试神器(一)

    感谢您抽出 阅读本文 一.Playwright简介 Playwright是微软开源的新一代自动化测试工具.类似于主流的Selenium. Playwright为现代Web应用程序提供可靠的端到端的自动 ...

  2. 【效率】微软开源最强Python自动化神器!不用写一行代码!

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

  3. 微软开源的Web测试和自动化神器 Playwright

    Playwright 是微软开源的一个用于 Web 测试和自动化的框架, 提供了可靠的端到端测试, 功能非常强大, 可以在测试, 爬虫,自动化场景中使用. 跨浏览器 Playwright 支持所有现代 ...

  4. 开源/免费界面自动化测试工具对比研究

    摘要: 随着我行自动化测试实施范围的不断扩大,参与界面自动化测试的应用系统越来越多.我行的应用系统现阶段多采用商用工具QTP(UFT)作为执行工具来进行界面自动化测试,采购的QTP license是有 ...

  5. 微软开源!世界首个AI量化投资平台 Qlib 基本使用教程

    量化往期推荐 Easytrader 超简单的股市自动交易神器 Lean - 优秀好用的开源量化交易平台 30分钟教你搭建普罗监控系统-股票人气榜实时变化! 可转债交易薅羊毛策略 - Python 量化 ...

  6. 清华大学开源了一项神器,在 GitHub 爆了!

    开源最前线(ID:OpenSourceTop) 猿妹 整编 整理自:https://github.com/pwxcoo/chinese-xinhua 清华大学在 GitHub 开源了一项神器叫万词王( ...

  7. Facebook、微信团队、Twitter、微软开源软件列表一览

    Facebook开源软件列表 从Facebook的GitHub账户中可以看到,Facebook已经开源的开源项目有近300个,领域涉及移动.前端.Web.后端.大数据.数据库.工具和硬件等.Faceb ...

  8. 微软开源数据处理引擎 Trill,每天可分析万亿次事件

    微软近日开源了数据处理引擎 Trill,它每天能够分析万亿次事件. 项目地址:https://github.com/Microsoft/trill 当下每毫秒处理大量数据正成为一种常见的业务需求,此次 ...

  9. 基于微软开源深度学习算法,用 Python 实现图像和视频修复

    ‍‍ 作者 | 李秋键 编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 图像修复是计算机视觉领域的一个重要任务,在数字艺术品修复.公安刑侦面部修复等种种实际场景中被广泛应用.图像 ...

最新文章

  1. Working copy XXX locked and cleanup failed in SVN
  2. 利用jquery getJSON 调用ashx实现ajax调用
  3. QuickContact分析及其弹出窗口实现
  4. SAP C4C - Field creation not permitted in partner devel
  5. IOS15全屏滑动返回
  6. 结构数据类型 struce c# 1613533319
  7. django 1.8 官方文档翻译:4-2-1 Django模版语言
  8. 基于JAVA+SpringMVC+MYSQL的博客系统
  9. idea tomcat配置
  10. 很想去摆地摊,可是不知道怎么开始,前期需要做什么准备工作吗?
  11. mysql config type_mysql_config_editor用法举例
  12. dos命令实现无限弹窗
  13. UE4 实时渲染原理优化策略笔记
  14. BeagleBone Black 从零到一 (2 MLO、U-Boot)
  15. 点集拓扑学习(一)拓扑空间
  16. Android 引导页开发管理2
  17. ps把白底图片改为透明
  18. 九宫怎么排列和使用_剪映零基础入门教程第三十七篇:一学就会系列之九宫格小程序配音...
  19. element单独选择年或年月或年月日以及起止日期使用el-date-picker
  20. 【SQL Server】grant, revoke, deny介绍及相关问题

热门文章

  1. 球弹跳高度的计算(C语言)
  2. 关于调整增值税税率的通知财税〔2018〕32号
  3. [导入]2008TVB新剧《太极》全25集大结局[DVD国语中字]
  4. 小程序仿钉钉分享打卡日历实现
  5. 使用 Element-UI 的 el-tabs 组件,浏览器卡住了
  6. 5个让人惊喜的微信小程序,免费且不占内存,超实用
  7. 常见电子面试知识(1/4)
  8. Lodop和C-Lodop打印控件用vue在win7电脑不兼容样式板式错乱问题
  9. LTspice 入门教程3 导入仿真模型
  10. 逐渐没落的行业--收音机