大家好,我是阿萨。 自动化测试过程中很多人不喜欢用GUI工具,都喜欢用命令行。今天我们就学习下Playwright的命令行有哪些。
安装浏览器
使用命令行来安装浏览器。
# 不带参数,安装默认浏览器playwright install
安装指定浏览器。
# Install WebKitplaywright install webkit
查看所有支持的浏览器。
playwright install --help
安装系统依赖
系统依赖可以自动改安装,特别是在CI环境里。
# See command helpplaywright install-deps
也可以为单个浏览器安装依赖。
playwright install-deps chromium
也可以把 install-deps 和 install 结合起来,用一条命令安装浏览器和操作系统的依赖项。这将为 Chromium 做到这一点,但你也可以不使用它。。
playwright install --with-deps chromium
生成代码
playwright codegen wikipedia.org
运行codegen并在浏览器中执行操作。Playwright CLI将为用户互动生成JavaScript代码。codegen将尝试生成有弹性的基于文本的选择器。
保存认证状态
用-save-storage运行codegen,在最后保存cookies和localStorage。这对单独记录认证步骤并在以后重复使用很有用。
playwright codegen --save-storage=auth.json# 执行认证并退出。# auth.json将包含存储状态。
用 --load-storage 运行,以消耗先前加载的存储。这样,所有的cookie和localStorage将被恢复,使大多数网络应用进入认证状态。
playwright open --load-storage=auth.json my.web.appplaywright codegen --load-storage=auth.json my.web.app# 在认证状态下执行操作。
使用自定义设置的Codegen
如果你想在一些非标准的设置中使用codegen(例如,使用browser_context.route()),可以调用page.pause(),它将打开一个带有codegen控件的单独窗口。
同步:
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:# Make sure to run headed. browser = p.chromium.launch(headless=False)# Setup context however you like. context = browser.new_context() # Pass any options context.route('**/*', lambda route: route.continue_())# Pause the page, and start recording manually. page = context.new_page() page.pause()
异步
import asynciofrom playwright.async_api import async_playwright async def main():async with async_playwright() as p:# 确保运行为首。 browser = await p.chromium.launch(headless=False) # 以你喜欢的方式设置上下文。 context = await browser.new_context() # 传递任何选项await context.route('**/*', lambda route: route.continue_()) # 暂停页面,并手动开始录制。 page = await context.new_page()await page.pause() asyncio.run(main())
打开页面
通过open,你可以使用Playwright捆绑的浏览器来浏览网页。Playwright 提供了跨平台的 WebKit 构建,可以用来在 Windows、Linux 和 macOS 上复制 Safari 的渲染。
# 在 Chromium 中打开页面playwright open example.com # 在 WebKit 中打开页面playwright wk example.com
模拟设备
打开可以从playwright.devices列表中模拟移动和平板设备。
# 仿真 iPhone 11。playwright open --device="iPhone 11" wikipedia.org
仿真颜色方案和视口尺寸
# 仿真屏幕尺寸和颜色方案。playwright open --viewport-size=800,600 --color-scheme=dark twitter.com
仿真地理位置、语言和时区
# 仿真时区、语言和位置# 一旦页面打开,点击 "我的位置 "按钮,可以看到地理定位的作用playwright open --timezone="Europe/Rome" --geolocation="41.890221,12.492348" --lang="it-IT" maps.google.com
检查选择器在开放或编码过程中,你可以在任何浏览器的开发者工具控制台中使用以下API。
playwright.$(selector)
查询Playwright选择器,使用实际的Playwright查询引擎,例如。
playwright.$(selector)
与 playwright.$ 相同,但返回所有匹配的元素。
playwright.expect(selector)
在元素面板中显示元素(如果相应浏览器的DevTools支持)。
playwright.locator(selector)
使用实际的 Playwright 查询引擎来查询 Playwright 元素,例如。
playwright.selector(element)
生成给定元素的选择器。
屏幕截图
# 查看命令帮助playwright screenshot --help
# 在页面加载后('load'事件触发),等待3秒再进行截图playwright screenshot\ --device="iPhone 11" (--color-scheme=done --color-scheme=dark (颜色模式=黑暗)。 --wait-for-timeout=3000 \ twitter.com twitter-iphone.png
# 捕获一个全页的屏幕截图playwright screenshot --full-page en.wikipedia.org wiki-full.png
生成PDF
PDF的生成只在无头的Chromium中起作用。
# 见命令帮助playwright pdf https://en.wikipedia.org/wiki/PDF wiki.pdf