一、Playwright简介 微软开源自动化测试工具Playwright,支持主流浏览器,包括:Chrome、Firefox、Safari 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,可以结合主流测试框架使用,并且支持浏览器端的自动化脚本录制等功能。 二、playwright特性 1、支持所有主流浏览器 支持所有主流浏览器:基于Chromium内核的Google Chrome 和 Microsoft Edge浏览器), WebKit内核的Apple Safari 和 Mozilla Firefox浏览器,不支持IE11。 跨平台:Windows、Linux 和macOS 可用于模拟移动端WEB应用的测试,不支持在真机上测试。 支持无头模式(默认)和有头模式 2、快速可靠的执行 自动等待元素 Playwright基于Websocket协议,可以接受浏览器(服务端)的信号。selenium采用的是HTTP协议,只能客户端发起请求。 浏览器上下文并行:单个浏览器实例下创建多个浏览器上下文,每个浏览器上下文可以处理多个页面。 有弹性的元素选择:可以使用文本、可访问标签选择元素。 3、强大的自动化能力 playwright是一个进程外自动化驱动程序,它不受页面内JavaScript执行范围的限制,可以自动化控制多个页面。 强大的网络控制:Playwright 引入了上下文范围的网络拦截来存根和模拟网络请求。 现代web特性:支持Shadow DOM选择,元素位置定位,页面提示处理,Web Worker等Web API。 覆盖所有场景:支持文件下载、上传、OOPIF(out-of-process iframes),输入、点击,暗黑模式等。 三、同步和异步API Playwright支持同步和异步两种API,使用异步API需要导入asyncio库,它是一个可以用来实现Python协程的库,更详细介绍可参考Python协程 。 下面介绍如何使用python语言编写简单的playwright自动化脚本。 一共有2条测试用例,用例1步骤如下: chrome浏览器打开百度 搜索框输入“test” 点击百度一下搜索 点击搜索结果的第2页 用例2步骤: chrome浏览器打开搜狗搜索 搜索框输入“test” 点击搜狗搜索 点击搜索结果的第2页 四、连接现有浏览器 除了创建新的浏览器实例,Playwright还支持连接到一个已经存在的浏览器实例,这在许多浏览器自动化应用场景中非常有用。例如,可以在已经登录到需要双因素身份验证的帐户或者已经完成了一些手动操作的浏览器中继续自动化程序,或者将控制权交还给手动操作。 让我们来看一下如何连接已经存在的 Chrome 浏览器。首先,我们需要打开 Chrome 浏览器的调试开关,这可以通过传递--remote-debugging-port参数来实现。在 Windows 上,你可以在命令提示符下运行以下命令:"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 接着,在打开的浏览器的地址栏中输入:127.0.0.1:9222/json/version 五、安装 有两种方法来安装该软件。 第一种方法是使用Node.js包管理器,如npm。如果选择这种方法,需要在电脑上安装Node.js。对于其他语言,Python使用pypi,Java使用Maven,C#可以使用 "dotnet add package "等.NET CLI命令来安装playwright的依赖项。 第二种方法是安装VSCode的playwright扩展,它带有方便的安装命令。这种方法能够让整个过程更顺畅、更容易。 Playwright的第一个特点(跨浏览器、跨平台和跨语言支持),我们可以说,它支持所有现代浏览器,在任何平台上都没有真正的限制。虽然它也支持流行的语言和技术,但支持的最好的语言是Typescript/Javascript。例如,如果你想在Java中使用Playwright,你需要选择你喜欢的测试运行器,如JUnit,并管理Playwright对象,如BrowserContext和Page。此外,你还需要为HTML报告找到一个解决方案。