playwright学习记录


playwright学习记录

一、playwright介绍

playwright是一个自动化测试工具,由微软开发,主要用于web端的UI测试,支持Python、Java,下文中介绍的playwright均指playwright-python。Playwright是一个强大的Python库,仅用一个API即可自动执行ChromiumFirefoxWebKit等主流浏览器自动化操作,并同时支持以无头模式有头模式运行。Playwright提供的自动化技术是绿色的、功能强大、可靠且快速,支持LinuxMac以及Windows操作系统。

playwright相比已有的自动化测试框架来说,具有有很多优势,比如:

  • 跨浏览器,支持Chromium、Firefox、WebKit
  • 跨操作系统,支持Linux、Mac、Windows
  • 可提供录制生成代码功能,解放双手
  • 可用于移动端

目前存在的缺点就是生态和文档还不是非常完备,比如没有API中文文档、没有较好的教程和示例供学习。

二、安装

1、安装playwright库

pip install playwright    #python版本要求:3.7+以上

2、安装浏览器驱动文件

python -m playwright install	#因为安装驱动是去外网下载,所以下载的时候会有点慢

三、基本使用方法

1、录制脚本

输入以下命令,pythonwright会使用谷歌浏览器打开百度并且录制脚本,保存为test.py

python -m playwright codegen --target python -o test.py -b chromium https://www.baidu.com
--target:规定生成脚本的语言,有JS和Python两种,默认为Python
-o:将录制的脚本保存到一个文件
-b:指定浏览器驱动

2、定位方式

1)xpath

选择器以//或..假定为xpath=selector
示例:page.click('xpath=//html')

简写方式:page.click('//html')

2)text

选择器以引号("或')开头和结尾为text=selector
示例:page.click('text="foo"')

简写方式:page.click('"foo"')

3)css

否则,假设选择器为 css=selector
示例:page.click('css=div')

简写方式:page.click('div')

四、使用方法

1、添加cookie--addCookies

with sync_playwright() as p:
    browser_type = p.chromium
    browser = browser_type.launch(headless=False)
    context = browser.newContext()
    context.addCookies(cookies=[{'name': 'xx','value':'xx','path':'xx','domain':'xx'},
    							{'name': 'xx','value':'xx','path':'xx','domain':'xx'}]
    page1 = context.newPage()

2、跳转网址--goto

page1页面进入指定网址

page1.goto('xx')

3、寻找元素--querySelector

寻找page1页面上的元素,如果没有找到,返回null

page1.querySelector('xx')

4、点击链接跳转新页面

点击网页1的链接跳转到网页2后,定位网页2

with page1.expect_popup() as popup_info:
page1.click('xx')  # 此处点击A页面跳转链接
page2 = popup_info.value
page2.click('xx')  # B页面的其他操作
page2.fill('xx', 'str')

5、点击元素--click

page1.click('xx')

6、填充元素--fill

page1.fill('xx','xx')