微软开源web自动化项目playwright-python

playwright-python

微软今年初开源了一个自动化项目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及以上版本

安装

//安装playwright
pip install playwright
//安装浏览器驱动文件
python -m playwright install

元素定位

playwright支持CSS 选择器、 XPath 选择器、 HTML 属性(如 id、 data-test-id 甚至文本内容)定位元素,并且不需要声明使用的定位方式。

//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')

操作

页面操作

  1. 打开新页面

    //实例化页面对象
    	page = context.new_page()
    
  2. 前往指定页面

    //参数为页面URL
    	page.goto('http://example.com')
    
  3. 切换frame

    //用 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')
    

元素操作

  1. 输入

    //第一个参数为定位方式,第二个参数为输入数据
    	page.fill('#search','query')
    
  2. 点击

    //参数为定位方式
    	page.click('#submit')
    

元素等待

//第一个参数是元素定位,第二个参数是等待状态
	page.wait_for_selector('#search', state='attached')
	page.wait_for_selector('#details', state='hidden')
	page.wait_for_selector('#promo', state='detached')

codegen

playwright的一大卖点就是可以不写一行代码的生成自动化脚本,借助codegen命令实现,其实在很多自动化工具包括selenium里也有相似的功能。

//打开维基百科页面,开始记录操作
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值