PlayWright浏览器测试

Playwright是一个支持Chromium、WebKit和Firefox的端到端测试框架,可在多个操作系统和模式下运行,包括原生移动设备仿真。推荐使用PlaywrightPytest插件,它提供同步和异步版本,便于编写和隔离测试。通过安装pytest-playwright和playwright,开发者可以开始编写测试,如检查页面标题和链接功能。默认在Chromium上运行,可配置CLI选项选择其他浏览器,且测试通常在无头模式下执行。

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

  • Playwright是专门为满足端到端测试的需求而创建的。Playwright支持所有现代渲染引擎,包括Chromium、WebKit和Firefox。在Windows、Linux和macOS上进行测试,无论是在本地还是在CI上,无论是无头模式还是有头模式,都可以使用原生的移动设备仿真。
  • Playwright建议使用官方的Playwright Pytest插件来编写端到端测试。它提供了上下文隔离,可以一次性在多种浏览器配置上运行。或者,您也可以使用该库手动编写测试基础设施,使用您喜欢的测试运行器。Pytest插件使用了Playwright的同步版本,也有一个异步版本可以通过该库访问。
  • 通过安装Playwright并运行示例测试来开始使用。
  • pip install pytest-playwright
  • playwright install
  • 在当前工作目录或子目录中创建一个test_my_application.py文件,并使用以下代码:
    • import re
      from playwright.sync_api import Page, expect
      
      
      def test_homepage_has_Playwright_in_title_and_get_started_link_linking_to_the_intro_page(page: Page):
          page.goto("https://playwright.dev/")
      
          # Expect a title "to contain" a substring.
          expect(page).to_have_title(re.compile("Playwright"))
      
          # create a locator
          get_started = page.get_by_role("link", name="Get started")
      
          # Expect an attribute "to be strictly equal" to the value.
          expect(get_started).to_have_attribute("href", "/docs/intro")
      
          # Click the get started link.
          get_started.click()
      
          # Expects the URL to contain intro.
          expect(page).to_have_url(re.compile(".*intro"))

  • 默认情况下,测试将在chromium上运行。这可以通过CLI选项进行配置。测试以无头模式运行,这意味着在运行测试时不会打开浏览器UI。测试结果和测试日志将显示在终端中。

pytest 

### 使用 Playwright 启动浏览器执行测试用例 为了使用 Playwright 执行测试用例,可以通过安装并配置必要的工具来实现这一目标。对于开发环境而言,在集成开发环境中利用插件可以简化项目的初始化过程和测试用例的管理[^1]。 当准备就绪后,通过命令行界面可以在多种浏览器上运行测试案例。具体来说,`npx playwright test` 命令会在 `playwright.config` 配置文件指定的所有浏览器中依次执行测试,并实时反馈结果给终端用户[^2]。 下面是一个简单的 Python 脚本例子,展示了如何启动特定类型的浏览器(如 Chromium, Firefox 或 WebKit),并通过该浏览器实例化页面对象来进行交互: ```python from playwright.sync_api import sync_playwright def run_test(): with sync_playwright() as p: browser = p.chromium.launch(headless=False) # 可替换为 firefox 或 webkit 并调整参数以适应需求 page = browser.new_page() try: page.goto('http://example.com') # 进行业务逻辑操作... finally: browser.close() if __name__ == '__main__': run_test() ``` 上述脚本中的 `p.chromium.launch()` 方法用于启动一个新浏览器实例;设置 `headless=False` 参数可以让浏览器窗口可见以便观察测试流程。完成所需的操作后记得调用 `browser.close()` 来释放资源[^3]。 针对某些场景下频繁开启关闭浏览器的问题,如果是在 pytest 中应用 Playwright,则可通过自定义 fixture 的作用域来优化这个问题,从而减少不必要的重复登录等问题的发生频率[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

caridle

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

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

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

打赏作者

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

抵扣说明:

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

余额充值