详解Playwright启动edge、chrome和firefox的正确方法

本文介绍了Playwright库用于启动不同浏览器的脚本,包括Chromium、Chrome、Firefox、WebKit(Safari)和Edge。默认启动的是Chromium,但可以通过设置channel参数启动其他浏览器,如Chrome、Firefox和Edge。此外,还展示了如何以无头模式运行和模拟iPhone12进行Web应用操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相信做过web自动化测试的同学们在选择产品时,都会重点会关注自动化测试产品支持哪些浏览器。Playwright 的浏览器,包括 Chrome 和 Edge(基于 Chromium)、Firefox和Safari(基于 WebKit)。今天在这里,重点讲解一下启动这些浏览器的脚本该如何编写!

默认启动的是chromium

重要的事情说三遍!

playwright执行默认运行的浏览器是chromium!

playwright执行默认运行的浏览器是chromium!

playwright执行默认运行的浏览器是chromium!

Chromium不是我们熟知的Chrome!Chromium OS是一个开源项目,主要由开发人员使用,其代码可供任何人检出、修改和构建。大家可以简单的理解二者的区别:Chromium 是开源的,Chrome 是闭源的,Chrome 特性更丰富。

我们可以通过下面的代码启动 chromium 浏览器

browser = p.chromium.launch(headless=False)

如果使用参数headless=False,那么浏览器不会启动,会以无头模式运行脚本。

加断点,我们就可以查看到启动的chromium 的版本信息,如下图:

启动chrome

如果我们需要启动chrome 浏览器,需要使用如下语句:

browser = p.chromium.launch(channel="chrome",headless=False)

启动firefox

启动firefox浏览器,代码如下:

browser = p.firefox.launch(headless=False)

启动webkit

启动webkit,代码如下:

browser = p.webkit.launch(headless=False)

备注:由于没有mac电脑,所以并未验证使用该方法能否成功启动Safari

启动edge

启动edge,需要注意一下

browser = p.chromium.launch(channel="msedge",headless=False)

参数channel

关于启动浏览器使用的 channel详解,我们可以去源码中寻找答案

C:\Python37\Lib\site-packages\playwright\sync_api\ _generated.py

class BrowserType(SyncBase): def launch中有详细的说明

channel : Union[str, None]

    Browser distribution channel.  Supported values are "chrome", "chrome-beta", "chrome-dev", "chrome-canary",

    "msedge", "msedge-beta", "msedge-dev", "msedge-canary". Read more about using

    [Google Chrome and Microsoft Edge](../browsers.md#google-chrome--microsoft-edge).

模拟iPhone浏览器

最后介绍以下模拟iphone,执行以下代码可以模拟在iPhone12中进行的web应用操作

iphone_12 = playwright.devices['iPhone 12']

browser = playwright.webkit.launch(headless=False)

context = browser.new_context(

    **iphone_12,

)

page=context.new_page()

page.goto("http://www.baidu.com")

### 启动本地浏览器 对于希望使用 Playwright 打开本地已安装的浏览器的需求,可以采用 `launch_persistent_context` 函数来实现非无痕模式下的浏览器启动。此函数允许指定用户数据目录,从而保持登录状态其他设置不变。 ```python from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch_persistent_context( user_data_dir="/path/to/user/data", # 用户数据文件夹路径 headless=False, # 设置为 False 显示界面 channel="chrome" # 可选参数用于指定要使用的 Chromium 衍生产品,默认是 chrome ) page = browser.new_page() page.goto("https://example.com") # 进行业务操作... browser.close() ``` 上述代码展示了如何配置并启动带有持久化上下文的 Chrome 浏览器实例[^1]。需要注意的是,在 Windows 平台上,如果打算启动 EdgeFirefox,则需相应调整 `channel` 参数值分别为 `"msedge"` `"firefox"`[^2]。 另外一种方式则是直接利用本地已存在的 Chrome 实例。为了做到这一点,需要先确保所有正在运行中的 Chrome 窗口均已关闭,因为 Playwright 将尝试连接到这些窗口所占用端口上的远程调试服务;如果有冲突则会造成失败[^4]。之后可以通过如下所示的方式建立连接: ```python browser = p.chromium.connect_over_cdp('http://localhost:9222') ``` 在此之前,应该手动启动具备远程调试选项 (`--remote-debugging-port=9222`) 的 Chrome 应用程序。 #### 关于加载扩展插件的支持情况 当涉及到加载特定的 Chrome 扩展时,Playwright 提供了一定程度的支持。具体而言,可以在创建新页面之前定义一组自定义命令行标志以及附加组件列表。更多细节可参阅官方文档说明[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试开发Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值