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()
posted @ 2022-12-25 14:45  __username  阅读(266)  评论(0编辑  收藏  举报

本文作者:DIVMonster

本文链接:https://www.cnblogs.com/guangzan/p/12886111.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。