相信自动化测试的同学,对于另一个 Python 自动化测试神器 selenium 并不陌生,在 playwright 出现之前,selenium 是自动化测试最常用的 Python 库,他支持多平台:windows、linux、MAC ,且支持多浏览器:ie、ff、safari、opera、chrome,以及支持多语言:如:C、 java、ruby、python、或是 C#等。
直到 2021 年微软开源了一个项目:playwright-python,Playwright 是针对 Python 语言的纯自动化工具,一个用于 Web 测试和自动化的框架。它可以通过单个 API 自动执行 Chromium,Firefox 和 WebKit 浏览器,同时支持以无头模式、有头模式运行。
playwright 官方文档:https://playwright.dev/docs/intro playwright GitHub 地址:https://github.com/microsoft/playwright
playwright 一推出,selenium 遭到前所未有的挑战,Playwright 旨在实现常绿、强大、可靠和快速的跨浏览器 Web 自动化。playwright 基本特点如下:
Playwright Test 是专门为满足端到端测试的需求而创建的。Playwright 和 selenium 一样,同样支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。支持在 Windows、Linux 和 macOS 上进行本地或 CI 测试,无头或使用适用于 Android 和 Mobile Safari 的 Google Chrome 的本机移动仿真进行测试。
Playwright 的安装非常简单,跟 Python 其他库的安装一样.
Playwright 搭建命令如下:
安装 playwright 库:
pip install playwright
安装 Playwright 测试浏览器:
python -m playwright install或playwright install
以上命令如果执行成功,具体情况如下图:
该命令其实就是下载安装相关的浏览器文件,执行该命令的时候,如果你的电脑上安装了 360,360 会有风险提示,询问是否允许操作,选择允许所有操作即可,然后勾上不再提示,接着就等着下载安装完成即可使用.下载的文件目录如下图,每个浏览器都是独立的文件夹:
完全无需一句代码即可实现自动化测试:使用 chromium 浏览器打开https://www.baidu.com
playwright codegen --target python -o open_baidu.py -b chromium https://www.baidu.com
执行以上命令会自动调用 playwright 的浏览器.会弹出两个窗口,一个是浏览器窗口,另一个窗口是你操做的记录,playwright 会将你操作记录自动转化为 Python 代码
可能有如下提示,选择允许操作即可:
playwright install
可能会有如下提示:原因是 win7 支持 node 的最高版本为 13.14.0,而且我本地装的是 13.9.0,但 playwright 要求 node 的版本必须高于 14,且 play 下载的 node 是版本为 16,这个时候我们就可以找到自己本地 node 的安装目录:把安装目录下的 node.exe 替换 playwright 目录里面的 node.exe 文件
以上两张图,第一张是我的 node 安装目录,第二张是 playwright 的安装目录(我使用的 anaconda 集成环境),替换完成后修改 E:\Anaconda3\Lib\site-packages\playwright\driver\package\package.json 文件(这个是我的安装目录,请根据你的具体情况修改对应的文件)
然后接着修改 E:\Anaconda3\Lib\site-packages\playwright\driver\package\index.js 文件(这个是我的安装目录,请根据你的具体情况修改对应的文件)的 14 改成比 13 或 12,只要比 14 小就可以
然后接着继续执行playwright install
命令即可成功安装浏览器
playwright 的版本问题,win7 最高支持 1.15.3。因此,安装 playwright 依赖库应指定版本,不能装最新版。pip install playwright==1.15.3 下一步就能成功安装 Chromium、Firefox、WebKit 等浏览器的驱动文件(内置浏览器)python -m playwright install
1.既然是因为 node 版本过低,不能成功安装 playwright 的内置浏览器,那就想办法安装高版本的 node。这才是一劳永逸的做法.
首先修改环境变量,新建一项变量名为 NODE_SKIP_PLATFORM_CHECK,变量值为 1 的系统环境变量.设置这个是跳过安装 node 时对版本的检查
2.下载 16 版本的 node 安装包:https://nodejs.org/en/
3.把下载下来的压缩文件进行解压,然后路径配置到 path 系统环境变量
4.然后保存,接着查看 node 的版本
5.如上图显示,说明 node16.17.0 安装成功.如果还是如下图提示版本过低,可重启你的电脑在尝试,再查看 node16.17.0 的是否安装成功,如果版本显示为 v16.17.0,则为 node 新版本安装成功.可以继续执行playwright install
进行 playwright 内置浏览器的安装,这时候就不会报版本过低的提示
领取专属 10元无门槛券
私享最新 技术干货