Playwright入门 —— 简介

摘要:
Playwright是Microsoft提供的一个web自动化工具,用于跨平台WebKit测试。使用Playwright和设备模拟来测试移动web浏览器中的响应web应用程序。Playwright支持所有浏览器和平台的headless(无浏览器UI)和headful(基于浏览器的UI)模式。例如,web请求、页面导航和页面加载事件使用浏览器上下文进行精益并行化。

Playwright是微软提供的一个web自动化工具,和puppeteer比较类似,微软自己对它的优势介绍如下:

支持所有浏览器

  • 在Chromium, Firefox 和 WebKit上测试。Playwright对所有的现代浏览器都有完整的API覆盖,包括谷歌Chrome和微软Edge(含Chromium),苹果Safari(含WebKit)和Mozilla Firefox。
  • 跨平台WebKit测试. 使用Playwright,测试你的应用程序在Apple Safari中的表现,并为Windows、Linux和macOS构建WebKit。在本地和CI上进行测试。
  • 测试移动。使用 device emulation在移动网络浏览器中测试您的响应式 Web 应用程序。
  • 无头和有头。Playwright支持所有浏览器和所有平台的headless(无浏览器UI)和headful(有浏览器UI)模式。Headful非常适合调试,而headless则更快,适合CI/cloud执行。

快速可靠的执行

  • 自动等待API。扮演者交互auto-wait for elements要准备好。这提高了可靠性并简化了测试编写。
  • 免超时自动化。Playwright接收浏览器信号,如网络请求、页面导航和页面加载事件,以消除导致flakiness的睡眠超时需求。
  • 使用浏览器上下文进行精益并行化。为多个并行化的隔离执行环境重用一个浏览器实例browser contexts.
  • 弹性元素选择器。Playwright可以依靠面向用户的字符串,如文本内容和可访问性标签来select elements。这些字符串比与DOM结构紧密耦合的选择器更有弹性。

强大的自动化功能

与您的工作流程集成

下面是一个简单的例子。

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

(async () => {
    const browser = await chromium.launch({
        headless: false,
        executablePath: 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
    });
    const page = await browser.newPage();

    await page.goto('https://www.cnblogs.com/TianFang/');
    await page.screenshot({path: 'example.png'});
    await browser.close();
})();

最近拿它当蜘蛛程序简单的试了一下,还是非常好用的,主要的好处有:

  1. 更强大、好用的api
  2. 更易读的文档
  3. 更方便的调试功能
  4. 易调试
  5. 除了nodejs外,还有c#的版本

当然,目前的主流测试工具已经有不少了,我本来也是拿它当蜘蛛使用,就不深入比较了,感兴趣的朋友可以看下网上的对比: Puppeteer, Selenium, Playwright, Cypress – how to choose?

相关站点:

免责声明:文章转载自《Playwright入门 —— 简介》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用dockerfile创建jmeter的docker镜像二十、oracle pl/sql基础下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CSS禁止选择文本功能(兼容IE,火狐等浏览器)

有时候,我们为了用户体验,需要禁用选择文本功能。 这需要用到一个CSS属性:user-select,user-select的文档点这里 user-select有两个值: none:用户不能选择文本 text:用户可以选择文本 需要注意的是:user-select并不是一个W3C的CSS标准属性,浏览器支持的不完整,需要对每种浏览器进行调整 body{...

Webkit内核探究【1】——Webkit简介

出处:http://www.cnblogs.com/jyli/archive/2010/01/31/1660355.html作者:李嘉昱 研究Webkit内核已经有一段时间了,在这期间我花了很多时间去研读webkit代码,并在网上查阅了不少的资料。在这之后,我开始尝试对Webkit内核进行剪裁,以便得到自己所需的部分。 俗语有言,“独学而无友 则孤陋而寡闻...

iOS/Android 浏览器(h5)及微信中唤起本地APP

在移动互联网,链接是比较重要的传播媒质,但很多时候我们又希望用户能够回到APP中,这就要求APP可以通过浏览器或在微信中被方便地唤起。 这是一个既直观又很好的用户体验,但在实现过程中会遇到各种问题: 如何解决未安装APP时的做好引导页 如何在微信中唤醒APP 在iOS9中如何处理universal link被用户误关的情况 如何解决Android各种机型...

服务器端Session和客户端Session(和Cookie区别)

Session其实分为客户端Session和服务器端Session。 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识。SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这个SessionID包含在 HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求页面的是哪一个客户...

谈HTML5和CSS3的国际化支持

    转载请标明出处:蒋宇捷的博客(http://blog.csdn.net/hfahe)     HTML5、CSS3在国际化支持,解决跨文化和语言问题上有了更大的进步,很好的体现了人性化的设计理念。 一、Padding-start、padding-end     CSS3的属性padding-start,padding-end,用于解决跨语言书写习惯...

查看HTTP请求的header信息

查看HTTP请求的header信息 路漫漫其修远兮,吾将上下而求索! 1 下载chrome浏览器 chrome浏览器是google开发的一块非常绑定浏览器.chrome浏览器下载地址. 2 通过chrome控制台查看http请求的header信息 2.1 打开chrome自带的调试工具 在网页任意地方右击选择检查或者按下F12,打开chrome自带的调试工...