写点什么

playwright 使用:启动浏览器与多种运行方式

  • 2024-05-11
    江西
  • 本文字数:1557 字

    阅读完需:约 5 分钟

前言

在本文中,我们将介绍如何使用 Playwright 这一现代化的浏览器自动化工具来启动浏览器,并深入了解其运行方式。Playwright 是一个功能强大的工具,可以帮助开发人员自动化测试、网页截图、信息提取等任务。它支持多种浏览器,包括 Chrome、Firefox 和 WebKit。

获取更多技术资料,请点击!

启动浏览器

上一篇文章中,我们安装了 playwright 和各个浏览器的测试版本,所以我们可以直接启动浏览器,代码如下:


from playwright.sync_api import sync_playwright

with sync_playwright() as p: browser = p.chromium.launch(headless=False) # 启动 chromium 浏览器 page = browser.new_page() # 打开一个标签页 page.goto("https://www.baidu.com") # 打开百度地址 print(page.title()) # 打印当前页面title browser.close() # 关闭浏览器对象
复制代码


打印结果如下:



注:playwright 默认是无头方式启动运行浏览器的,如果我们想要看到界面,需要查看浏览器界面,需要将 headless 设置为 False

异步运行

Playwright 支持 2 种运行方式:同步和异步。如果项目使用 asyncio,那我们应该使用 async API:


import asynciofrom playwright.async_api import async_playwright


async def main(): async with async_playwright() as p: browser = await p.chromium.launch(headless=False) page = await browser.new_page() await page.goto("https://www.baidu.com") print(await page.title()) await browser.close()
asyncio.run(main())
复制代码


打印结果如下:


start stop 运行方式

除了 with 方式运行之外,我们还可以使用 start,stop 来运行。代码如下:


from playwright.sync_api import sync_playwright
playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False)page = browser.new_page()page.goto("https://www.baidu.com/")

browser.close()playwright.stop()
复制代码

等待

相对于 selenium,playwright 执行速度会更快,为了便于我们查看执行的过程,我们可以加上等待来减缓执行,但是与 selenium 不同,playwright 通过 slow_mo (单位是毫秒)减慢执行速度,它的作用范围是全局的,从启动浏览器到操作元素每个动作都会有等待间隔,方便在出现问题的时候看到页面操作情况。使用方法如下:


chromium.launch(headless=False, slow_mo=50)
复制代码


示例代码如下:


from playwright.sync_api import sync_playwright

with sync_playwright() as p: browser = p.chromium.launch(headless=False, slow_mo=1000) page = browser.new_page() page.goto("https://www.baidu.com") print(page.title()) page.fill('#kw', "theshy") page.click('#su') browser.close()
复制代码


注:与 selenium 不同,playwright 不再支持 time.sleep(),而是使用 page.wait_for_timeout()来实现等待,当我们调试时需要等待,即可使用该方法。


示例代码如下:


from playwright.sync_api import sync_playwright


with sync_playwright() as p: browser = p.chromium.launch(headless=False, slow_mo=1000) page = browser.new_page() page.goto("https://www.baidu.com") print(page.title()) # 等待5秒 page.wait_for_timeout(5000) page.fill('#kw', "theshy") page.click('#su') # 等待3秒 page.wait_for_timeout(3000) browser.close()
复制代码


运行结果如下:



页面截图如下下图


总结

本文主要介绍了一些 playwright 的简单使用,playwright 的使用与 selenium 有一些不同,我们需要注意不同点,比如 playwright 默认是无头模式运行以及等待的改变。下一篇文章我们将介绍 playwright 定位元素的方法。

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
playwright使用:启动浏览器与多种运行方式_霍格沃兹测试开发学社_InfoQ写作社区