Playwright Web UI自动化框架(微软出品)

1、微软开源 比selenium 更好用,无需配置各种浏览器环境,加载效率高,运行速度更快。支持有头、无头、以及兼容各个平台与多种语言。

 

2、代码演示

# 同步模式
from playwright.sync_api import sync_playwright
# 初始化playwright
playwright = sync_playwright().start()
# 无头模式headless,打开chromium、firefox、webkit
browser = playwright.chromium.launch(headless=False, args=["--start-maximized"])
# 窗口最大化no_viewport=True,自定义窗口viewport={'width': 1800, 'height': 1024}
context = browser.new_context(no_viewport=True)
# 打开一个新网页,前往
page = context.new_page()
page.goto("https://www.baidu.com/")
browser.close()
playwright.stop()

  

3、关于无头模式,执行会出现cmd弹窗的问题。

开始安装的playwright 版本为1.33.0版本,通过cmd或者jenkins 执行代码都是调起N多个cmd弹窗。

然后卸载掉此版本的playwright以及之前下载的浏览器驱动,重新安装版本1.35.0且重新下载浏览器驱动,使用pytest执行就不会再出现cmd弹窗。pytest执行需要下载pytest-playwright库。

 

4、获取元素的文本

page.locator("[data-test=\"copiable-text-el\"]").inner_text()

5、获取剪切板内容

# 必须先有点击复制的操作
 page.get_by_role("button", name="Copy").click()
# 设置获取剪切板的权限
 page.context.grant_permissions(["clipboard-read"])
# 获取剪切板内容
 page.evaluate("navigator.clipboard.readText()")
# 授予全部权限
 page.context.clear_permissions()

 6、处理表单填充、文本框输入

可以使用fill()方法在输入框中输入文本。例如

 7、点击页面元素

可以使用click()方法单击页面上的元素。例如:

 8、选择下拉列表中的选项

可以使用selectOption()方法从下拉列表中选择选项。例如:

9、模拟键盘输入

可以使用keyboard对象模拟键盘输入。例如:

 10、模拟鼠标操作

可以使用mouse对象模拟鼠标操作。例如:

 11、上传文件

可以使用set_input_files方法定位上传元素传入文件。例如:

 12、截图操作

使用page.screenshot()方法可以对当前页面进行截图,例如:

 也可以使用page.pdf()方法将页面转换为PDF格式,例如:

13、处理请求和响应

 可以使用page.route()方法来拦截发出的请求,并进行相应的处理,例如:

 也可以使用page.on('response')方法来拦截接收到的响应,并进行相应的处理,例如:

 14、同步与异步

同步例子:

 Playwright 默认使用异步操作方式。可以通过使用 await 关键字或 async with 语法来定义异步操作,或者使用 sync 关键字来定义同步操作。例如:

 

posted @ 2023-02-24 11:41  Jc_code  阅读(864)  评论(0编辑  收藏  举报