自动化神器Playwright-python(1)-安装部署
安装
代码语言:javascript复制# 安装python库
pip install playwright
# 下载驱动
playwright install
录制
- 打开录制窗口
playwright codegen -o union.py -b firefox # 火狐打开浏览器, 录制脚本写入到 union.py文件中
- 鼠标操作, 可以点击按钮进行添加断言, 录制结束关闭浏览器
- 脚本回放: 直接运行脚本
不足之处:
- 上传操作无法成功录制, 需要手动修改
- 页面跳转不聪明, 重定向的url也都会执行
文件上传
- 方法1:通用方法
# 文件上传
with page.expect_file_chooser() as file_chooser_info:
page.get_by_text("将文件拖入此区域或者选择文件(可以多选, 仅支持").click() # 传递文件
files = get_files(file_name)
file_chooser_info.value.set_files(files)
page.wait_for_load_state() # 等待上传完毕
- 方法2: input元素
upload_ele = page.locator("input[type=file][name=file][multiple=multiple]") # 获取input上传元素
upload_ele.set_input_files('1.jpg') # 传递文件
page.wait_for_load_state() # 等待上传完毕
自动化神器Playwright-python(2)-等待机制
Playwright会自动等待页面数据展示, 无需手动设置, 这在某些场景下是有害的
解决不必要的等待问题
场景: 登录页面有二维码登录和账号登录2种方式, playwright会自动等待二维码展示(耗时较久,非必要)
解决方案: 设置goto超时机制, 报错直接pass
代码语言:javascript复制try:
page.goto('https://xxx.com/admin/', timeout=1000)
except Exception as e:
pass
获取session存储
代码语言:javascript复制dict_sessionStorage = page.evaluate('sessionStorage')
自动化神器Playwright-python(3)-设备仿真
playwright可通过浏览器的设备仿真技术, 测试移动端应用
设备仿真
代码语言:javascript复制from playwright.sync_api import sync_playwright
from loguru import logger
def run():
with sync_playwright() as pw:
# 获取设备配置信息
iphone14 = pw.devices['iPhone 14']
# 初始化一个设备环境, 打开页面
browser = pw.chromium.launch(headless=False)
context = browser.new_context(**iphone14)
page = context.new_page()
page.goto("http://baidu.com")
page.pause()