自动化测试工具playwright中文文档-------13.浏览器

简介

每个版本的 Playwright 都需要特定版本的浏览器二进制文件才能运行。你需要使用 Playwright 命令行界面(CLI)来安装这些浏览器。

随着每次发布,Playwright 都会更新它所支持的浏览器版本,以确保最新的 Playwright 能够在任何时刻支持最新的浏览器。这意味着每次你更新 Playwright 时,都可能需要重新运行安装 CLI 命令。

安装浏览器

Playwright 可以安装支持的浏览器。运行不带参数的命令将安装默认浏览器。

playwright install

你也可以通过提供参数来安装特定的浏览器:

playwright install webkit

要查看所有支持的浏览器,可以使用:

playwright install --help

安装系统依赖

系统依赖项可以自动安装。这对于持续集成(CI)环境非常有用。

playwright install-deps

你也可以通过传递参数来仅为单个浏览器安装依赖项:

playwright install-deps chromium

此外,还可以将 install-deps 与 install 结合使用,以便通过单个命令安装浏览器和操作系统依赖项

playwright install --with-deps chromium

配置浏览器

Playwright 可以在 Chromium、WebKit 和 Firefox 浏览器以及诸如 Google Chrome 和 Microsoft Edge 等品牌浏览器上运行测试。它还可以在模拟的平板电脑和移动设备上运行。请参阅设备参数注册表 registry of device parameters,以获取选定桌面、平板电脑和移动设备的完整列表。

在不同浏览器上运行测试

在特定浏览器上运行测试:

pytest test_login.py --browser webkit

在多个浏览器上运行测试:

pytest test_login.py --browser webkit --browser firefox

针对移动视口进行测试:

pytest test_login.py --device="iPhone 13"

针对品牌浏览器进行测试(例如 Microsoft Edge):

pytest test_login.py --browser-channel msedge

Chromium

对于 Google Chrome、Microsoft Edge 和其他基于 Chromium 的浏览器,Playwright 默认使用开源的 Chromium 构建。由于 Chromium 项目通常领先于品牌浏览器,所以当世界范围内都在使用 Google Chrome N 版本时,Playwright 已经支持了 Chromium N+1 版本,而这个版本将在几周后发布到 Google Chrome 和 Microsoft Edge 中。

Google Chrome & Microsoft Edge

虽然 Playwright 可以下载并使用最新的 Chromium 构建,但它也可以针对机器上已安装的 Google Chrome 和 Microsoft Edge 品牌浏览器进行操作(请注意,Playwright 默认不会安装它们)。特别是,当前的 Playwright 版本将支持这些浏览器的稳定版(Stable)和测试版(Beta)通道。

可用的通道包括 chromemsedgechrome-betamsedge-beta 或 msedge-dev

pytest test_login.py --browser-channel msedge

警告

某些企业浏览器策略可能会影响 Playwright 启动和控制 Google Chrome 和 Microsoft Edge 的能力。在具有浏览器策略的环境中运行超出了 Playwright 项目的范围。

安装 Google Chrome & Microsoft Edge

如果你的机器上没有安装 Google Chrome 或 Microsoft Edge,你可以使用 Playwright 命令行工具来安装它们(但请注意,实际上 Playwright 通常只支持安装 Chromium 浏览器,而不是直接安装 Google Chrome 或 Microsoft Edge 的完整版本)。然而,对于 Microsoft Edge(基于 Chromium),你可以通过 Playwright 的 install 命令来安装其 Chromium 版本的兼容版本。

对于 Microsoft Edge 的情况,你可以使用以下命令:

playwright install msedge

Playwright 的 install 命令主要用于安装 Playwright 支持的浏览器引擎(如 Chromium、WebKit 和 Firefox),而不是直接安装品牌浏览器(如 Google Chrome 或 Microsoft Edge 的完整版本)。如果你需要在 Playwright 脚本中使用这些品牌浏览器,请确保它们已经安装在你的机器上,并且 Playwright 能够找到它们(或者你可以通过配置 Playwright 来指定浏览器可执行文件的路径)。

警告
Google Chrome或Microsoft Edge安装将安装在操作系统的默认全局位置,覆盖您当前的浏览器安装。

使用——help选项运行以查看可以安装的浏览器的完整列表。

何时使用 Google Chrome & Microsoft Edge,何时不使用?

默认情况

大多数情况下,使用 Playwright 的默认配置和最新的 Chromium 是一个好主意。由于 Playwright 领先于浏览器的稳定通道,因此可以确保在 Google Chrome 或 Microsoft Edge 的新版本发布之前,你的网站不会因为浏览器的更新而出现问题。这样,你可以提前发现并有足够的时间在官方 Chrome 更新之前进行修复。

回归测试

然而,测试策略通常要求对当前公开可用的浏览器进行回归测试。在这种情况下,你可以选择使用稳定通道之一,即 "chrome" 或 "msedge"。

媒体编解码器

使用官方二进制文件进行测试的另一个原因是测试与媒体编解码器相关的功能。由于各种许可考虑和协议,Chromium 并不包含 Google Chrome 或 Microsoft Edge 捆绑的所有编解码器。如果你的网站依赖于这种编解码器(这种情况很少见),那么你也应该使用官方通道。

企业策略

Google Chrome 和 Microsoft Edge 遵循企业策略,这些策略包括对功能、网络代理、强制扩展等测试障碍的限制。因此,如果你所在的组织使用了这样的策略,那么在你的本地测试中,使用捆绑的 Chromium 是最简单的。但是,在通常不受这些限制限制的自动化测试机器上,你仍然可以选择使用稳定通道。

Firefox

Playwright 的 Firefox 版本与最近的 Firefox 稳定版Firefox Stable 相匹配。由于 Playwright 依赖于补丁,因此它不与 Firefox 的品牌版本一起工作。

WebKit

Playwright 的 WebKit 版本与 WebKit 主干构建中的最新版本相匹配,这些版本在它们被用于 Apple Safari 和其他基于 WebKit 的浏览器之前。这为潜在的浏览器更新问题提供了充足的反应时间。Playwright 不与 Safari 的品牌版本一起工作,因为它依赖于特定的补丁。相反,你可以使用与 Playwright 兼容的最近的 WebKit 构建进行测试。

安装 Playwright 在防火墙或代理之后

默认情况下,Playwright 从 Microsoft 的 CDN 下载浏览器。

有时,公司会使用内部代理来阻止对公共资源的直接访问。在这种情况下,可以配置 Playwright 通过代理服务器下载浏览器。

# Bash
pip install playwright
HTTPS_PROXY=https://192.0.2.1 playwright install

# PowerShell
$Env:HTTPS_PROXY="https://192.0.2.1"
pip install playwright
playwright install

# Batch
set HTTPS_PROXY=https://192.0.2.1
pip install playwright
playwright install

如果代理的请求被一个自定义的不受信任的证书颁发机构(CA)拦截,并且在下载浏览器时出现了“证书链中的自签名证书”错误,那么在安装浏览器之前,你必须通过 NODE_EXTRA_CA_CERTS 环境变量设置你的自定义根证书。

# Bash
export NODE_EXTRA_CA_CERTS="/path/to/cert.pem"

# PowerShell
$Env:NODE_EXTRA_CA_CERTS="C:\certs\root.crt"

# Batch
set NODE_EXTRA_CA_CERTS="C:\certs\root.crt"

如果你的网络连接到 Playwright 浏览器存档的速度很慢,你可以通过设置 PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT 环境变量来增加连接超时时间(以毫秒为单位)。

这个环境变量允许你指定 Playwright 在放弃下载浏览器之前等待服务器响应的最长时间。如果由于网络延迟或速度慢,默认的连接超时时间不足以完成下载,增加这个时间可以帮助成功下载浏览器。

# Bash
pip install playwright
PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT=120000 playwright install

# PowerShell
$Env:PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT="120000"
pip install playwright
playwright install

# Batch
set PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT=120000
pip install playwright
playwright install

如果你在 Linux 上安装依赖项并且需要使用代理,请确保以 root 用户身份运行命令。否则,Playwright 会尝试以 root 身份运行,但不会将像 HTTPS_PROXY 这样的环境变量传递给 Linux 包管理器。

sudo HTTPS_PROXY=https://192.0.2.1 playwright install-deps

从制品仓库下载

默认情况下,Playwright 从 Microsoft 的 CDN 下载浏览器。

有时,公司会维护一个内部制品仓库来托管浏览器二进制文件。在这种情况下,可以配置 Playwright 以使用 PLAYWRIGHT_DOWNLOAD_HOST 环境变量从自定义位置下载。

为了从自定义位置下载浏览器,你需要设置 PLAYWRIGHT_DOWNLOAD_HOST 环境变量为你想要下载的 URL。这个 URL 应该指向一个包含 Playwright 浏览器二进制文件的目录。

Bash
pip install playwright
PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1 playwright install

PowerShell
$Env:PLAYWRIGHT_DOWNLOAD_HOST="http://192.0.2.1"
pip install playwright
playwright install


Batch
set PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1
pip install playwright
playwright install

还可以使用针对每个浏览器的下载主机,通过 PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOSTPLAYWRIGHT_FIREFOX_DOWNLOAD_HOST 和 PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST 环境变量来指定,这些变量将优先于 PLAYWRIGHT_DOWNLOAD_HOST 环境变量。

Bash
pip install playwright
PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST=http://203.0.113.3 PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1 playwright install

PowerShell
$Env:PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST="http://203.0.113.3"
$Env:PLAYWRIGHT_DOWNLOAD_HOST="http://192.0.2.1"
pip install playwright
playwright install

Batch
set PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST=http://203.0.113.3
set PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1
pip install playwright
playwright install

管理浏览器二进制文件

Playwright 将 Chromium、WebKit 和 Firefox 浏览器下载到特定于操作系统的缓存文件夹中:

  • 在 Windows 上:%USERPROFILE%\AppData\Local\ms-playwright
  • 在 MacOS 上:~/Library/Caches/ms-playwright
  • 在 Linux 上:~/.cache/ms-playwright

这些浏览器在安装时会占用几百兆的磁盘空间:

du -hs ~/Library/Caches/ms-playwright/*
281M  chromium-XXXXXX
187M  firefox-XXXX
180M  webkit-XXXX

你可以使用环境变量来覆盖默认行为。在安装 Playwright 时,可以要求它将浏览器下载到特定位置。

Bash
pip install playwright
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers python -m playwright install

PowerShell
$Env:PLAYWRIGHT_BROWSERS_PATH="$Env:USERPROFILE\pw-browsers"
pip install playwright
playwright install

Batch
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers
pip install playwright
playwright install

当运行 Playwright 脚本时,可以要求它在共享位置搜索浏览器。

Bash
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers python playwright_script.py

PowerShell
$Env:PLAYWRIGHT_BROWSERS_PATH="$Env:USERPROFILE\pw-browsers"
python playwright_script.py

Batch
set PLAYWRIGHT_BROWSERS_PATH=%USERPROFILE%\pw-browsers
python playwright_script.py

Playwright 会跟踪需要这些浏览器的包,并在你更新 Playwright 到新版本时自动进行垃圾回收(清理不再需要的旧版本浏览器)。

这意味着当你使用 Playwright 并更新到新版本时,Playwright 会检查你的系统上安装的浏览器版本,并确定哪些版本是当前 Playwright 版本所不再需要的。然后,它会安全地删除这些不再需要的旧版本浏览器二进制文件,以释放磁盘空间。

注意

开发者可以通过在其 .bashrc 文件中导出 PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers 来选择启用此模式。

过时浏览器移除

Playwright 会跟踪使用其浏览器的客户端。当没有任何客户端再需要某个特定版本的浏览器时,该版本就会从系统中删除。这样,你就可以安全地使用不同版本的 Playwright 实例,同时不会浪费不再使用的浏览器的磁盘空间。

如果你想要退出未使用浏览器的移除功能,可以设置 PLAYWRIGHT_SKIP_BROWSER_GC=1 环境变量。这样做会告诉 Playwright 不要自动删除未使用的浏览器版本,即使它们已经不再被任何客户端所需。

卸载浏览器

这将移除当前 Playwright 安装中的浏览器(Chromium、Firefox、WebKit):

playwright uninstall

如果你还想移除其他 Playwright 安装中的浏览器,可以传递 --all 标志:

playwright uninstall --all

使用 --all 标志时,Playwright 会尝试找到并卸载系统上所有 Playwright 安装的浏览器二进制文件。这在你想要完全清理 Playwright 相关的浏览器文件时非常有用,比如当你准备重新安装 Playwright 或在不同的用户或环境中工作时。

请注意,在卸载浏览器之前,请确保你不再需要这些浏览器二进制文件,因为一旦卸载,它们将无法恢复(除非你重新下载或安装它们)。此外,如果你正在使用 Playwright 进行自动化测试或开发,并且依赖于特定的浏览器版本,那么卸载这些浏览器可能会对你的工作产生不利影响。因此,在卸载之前,请务必谨慎考虑。

Python 是一种易于学习又功能强大的编程语言。它提供了高效的高级数据结构,还有简单有效的面向对象编程。Python 优雅的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。 Python 解释器及丰富的标准库以源码或机器码的形式提供,可以到 Python 官网 https://www.python.org/ 免费获取适用于各个主要系统平台的版本,并可自由地分发。这个网站还包含许多免费第三方 Python 模块、程序和工具以及附加文档的发布页面或链接。 Python 解释器易于扩展,可以使用 C 或 C++(或者其他可以通过 C 调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。 这个教程非正式地介绍 Python 语言和系统的基本概念和功能。最好在阅读的时候准备一个 Python 解释器进行练习,不过所有的例子都是相互独立的,所以这个教程也可以离线阅读。 有关标准的对象和模块,参阅 Python 标准库。Python 语言参考 提供了更正式的语言参考。想要编写 C 或者 C++ 扩展可以参考 扩展和嵌入 Python 解释器 和 Python/C API 参考手册。也有不少书籍深入讲解Python 。 这个教程并没有完整包含每一个功能,甚至常用功能可能也没有全部涉及。这个教程只介绍 Python 中最值得注意的功能,也会让你体会到这个语言的风格特色。学习完这个教程,你将可以阅读和编写 Python 模块和程序,也可以开始学习更多的 Python 库模块,详见 Python 标准库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值