微软今年初开源了一个自动化项目playwright-python【Github地址】,其官方给的官方文档也简单的介绍了一下这个项目。但是因为正在学习selenium所以怕混淆,就没敢开playwright-python的坑,这会儿正好有时间就简单介绍一下这个playwright-python。
playwright-python提供同步和异步两种模式,我这里主要以同步模式展开写。
浏览器方面
:不支持早期版本的Edge和IE11,支持新版本的Edge、Chrome、Firefox、webkit系统方面
:支持Windows、MacOS(需要10.14 (Mojave)或以上版本)、Linux(Ubuntu仅支持18.04和20.04)语言平台方面
:需要Python3.7及以上版本shell//安装playwright pip install playwright //安装浏览器驱动文件 python -m playwright install
playwright支持CSS 选择器、 XPath 选择器、 HTML 属性(如 id、 data-test-id 甚至文本内容)定位元素,并且不需要声明使用的定位方式。
python//data-test-id定位
page.click('data-test-id=foo')
//CSS 和 XPath 选择器定位(不指定也可以执行)
page.click('div')
page.click('//html/body/div')
page.click('css=div')
page.click('xpath=//html/body/div')
//文本定位
page.click('text=Hello w')
//不同选择器组合 使用条件1>>条件2,会在符合条件1的元素中检索符合条件2的元素
page.click('#free-month-promo >> text=Sign Up')
打开新页面
python//实例化页面对象 page = context.new_page()
前往指定页面
python//参数为页面URL
page.goto('http://example.com')
切换frame
python//用 frame 的 name 属性获取 frame
frame = page.frame('frame-login')
//使用 frame 的 URL 获取 frame
frame = page.frame(url 网址=r'.*domain.*' R’. * domain *)
//使用属性选择器获取帧
frame_element_handle = page.query_selector('.frame-class')
frame = frame_element_handle.content_frame()
//与框架互动
frame.fill('#username-input', 'John')
输入
python//第一个参数为定位方式,第二个参数为输入数据
page.fill('#search','query')
点击
python//参数为定位方式
page.click('#submit')
python//第一个参数是元素定位,第二个参数是等待状态
page.wait_for_selector('#search', state='attached')
page.wait_for_selector('#details', state='hidden')
page.wait_for_selector('#promo', state='detached')
playwright的一大卖点就是可以不写一行代码的生成自动化脚本,借助codegen
命令实现,其实在很多自动化工具包括selenium里也有相似的功能。
python//打开维基百科页面,开始记录操作
playwright codegen wikipedia.org
//结束操作,以保存cookie和localStorage为脚本
playwright codegen --save-storage=auth.json
//读取保存的认证信息
playwright open --load-storage = auth.json my.web.app
playwright codegen --load-storage=auth.json my.web.app
本文作者:Yaki
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!