48playwright基本使用
playwright简介: 地址:https://playwright.dev/python/docs/api/class-playwright#methods
简介:
Playwright是一个开源的自动化测试工具,它使用类似于Puppeteer的API来控制Web浏览器。它是由微软的开发人员编写的,旨在为自动化测试提供更多的功能和更好的性能。
Playwright支持三种流行的浏览器:Chrome,Firefox和Safari。它可以自动检测哪些浏览器安装了,并使用这些浏览器来运行测试。
Playwright使用JavaScript作为编写测试用例的语言。它使用页面对象模型(POM)架构来组织测试用例,并且可以使用各种测试框架(如Mocha,Jest,Cucumber等)来运行测试。
Playwright还提供了一些额外的功能,比如操作浏览器中的文件,模拟视觉障碍,捕获测试错误的截屏等。
总的来说,Playwright是一个强大的自动化测试工具,可以帮助开发人员快速编写和运行Web应用程序的测试用例。
对比selenium:
- 比selenium启动和执行速度更快
- selenium底层是http(单向通讯),playwright基于websocket(双向通信)
- playwright是自动等待
- playwright支持异步方式
# 安装方式:
pip install playwright
playwright install
# 录制:
# 录制(呈现代码,在终端输入):
playwright codegen # 终端输入
法一:playwright codegen www.baidu.com(直接启动百度)
法二:playwright codegen --viewport-size=800,600 www.baidu.com (窗口大小)
法三:playwright codegen --device="iphone 13" www.baidu.com (苹果13设备)
法四:playwright codegen --save-storage=auto.json www.taobao.com:8080 (记录登录管理cookie信息) 第一次需要登录
法四(2):playwright codegen --load-storage=auto.json www.taobao.com:8080 (此时打开这个网址不需要再次输入username pwd) 处于登录状态
法五(跟踪):playwright show-trace trace路径
利用脚本录制
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://www.baidu.com/")
page.locator("#kw").click()
page.locator("#kw").fill("你好")
page.locator("#kw").press("Enter")
with page.expect_popup() as page1_info:
page.get_by_role("link", name="你好,汉语词语,百度百科").click()
page1 = page1_info.value
# ---------------------
context.close()
browser.close()
手写部分代码
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False,
args=["--start-maximized"],
slow_mo=3000) # 实例化浏览器 这里3000为3秒
page = browser.new_page(viewport={"width": 1920, "height": 1080}) # 实例化页面
page.goto("https://www.zhihu.com/")
# print(page.title()) # 打印网页标题
# browser.close()
page.get_by_title("开通机构号").click()
# 后退
page.go_back()
# 前进
page.go_forward()
# 刷新
page.reload()
browser.close()
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/17004019.html