playwright介绍:
*网上听说这个框架很厉害,然后就有了下文,试探性玩一下
一、安装playwright
# python版本至少3.7以上 pip install playwright #自动安装Chromium、Firefox、WebKit等浏览器的驱动文件 python -m playwright install
二、脚本录制
录制命令codegen:
通过python -m playwright codegen --help 可查看所有用法
常用参数含义:
-o:将录制的脚本保存到一个文件的文件名称 --target:指定生成的脚本语言,默认为python,目前支持python和JS -b:指定浏览器驱动
# 使用谷歌驱动去打开网址 # 生成脚本为python脚本,且脚本名字叫login.py python -m playwright codegen --target python -o login.py -b chromium https://www.baidu.com
录制脚本:
执行:
python -m playwright codegen --target python -o login.py -b chromium https://www.baidu.com
会弹出录制窗口,和打开浏览器界面
操作完之后关闭窗口,查看生成脚本
login.py
from playwright.sync_api import Playwright, sync_playwright, expect def run(playwright: Playwright) -> None: browser = playwright.chromium.launch(headless=False) context = browser.new_context() # Open new page page = context.new_page() # Go to https://www.baidu.com/ page.goto("https://www.baidu.com/") # Click input[name="wd"] page.locator("input[name=\"wd\"]").click() # Click [id="\32 "] h3 >> text=懿曲折扇情 with page.expect_popup() as popup_info: page.locator("[id=\"\\32 \"] h3 >> text=懿曲折扇情").click() page1 = popup_info.value page.wait_for_url("https://www.gaojs.com.cn/") # Click text=关于作者 >> nth=0 page1.locator("text=关于作者").first.click() page1.wait_for_url("https://www.gaojs.com.cn/s/about") # Click text=归档 >> nth=0 page1.locator("text=归档").first.click() page1.wait_for_url("https://www.gaojs.com.cn/archives") # Close page page1.close() # Close page page.close() # --------------------- context.close() browser.close() with sync_playwright() as playwright: run(playwright)
三、回放脚本
执行python login.py即可
报错信息:
看样子是没有输入text导致超时退出
四、产品对比
1.之前操作过阿里巴巴出的uirecorder,也是录制出来之后是js代码,发现产品还是有很多缺陷,踩坑了半个月,就放弃了,更换别的框架了.
2.个人觉得只要录制的脚本,多多少少我都觉得不太好使,最好当个辅助使用吧,要不后续出去面试人家问你怎么做自动化,你说你录制,估计就要凉了。
3.而且回放的时候,会产生很多问题,调试也是很耗时,一旦业务有变动或者元素啥的
有变动就可能要重新录制,也就有了重新回访调试。
4.也有可能当时对录制玩的少
5.既然网上说这个很厉害,能结合pytest分层等等,就说明还是可以的,可以一试。