2022年新一代最强开源UI自动化测试神器 ——Playwright(三)

感谢您抽出

.

.

阅读本文

一.playwright 脚本调试

Playwright提供了degbug工具,用于脚本调试。
Playwright Inspector是一个GUI工具,可帮助修改和调试Playwright脚本。

# linux
PWDEBUG=1 pytest -s

# cmd
set PWDEBUG=1
pytest -s

# PowerShell
$env:PWDEBUG=1
pytest -s

设置PWDEBUG=1时,会同时修改其它的默认参数

  • 浏览器以headed模式启动

  • 默认超时时间设置为0

2022年新一代最强开源UI自动化测试神器 ——Playwright(三)_第1张图片

二.playwright 处理对话框

  • alert()

  • confirm()

  • prompt()

Playwright默认取消对话框,因此我们不需要做任何处理,但是,我们可以通过在触发对话框之前注册一个对话框处理程序。

page.on("dialog", lambda dialog: dialog.accept())
page.locator("button").click()

举个例子,引用某大佬的页面

2022年新一代最强开源UI自动化测试神器 ——Playwright(三)_第2张图片

import time

from playwright.sync_api import Playwright, sync_playwright, expect

def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(channel="chrome", headless=False)
    context = browser.new_context()
    # Open new page
    page = context.new_page()
    # Go to https://sahitest.com/demo/confirmTest.htm
    page.goto("https://sahitest.com/demo/confirmTest.htm")
    # Click text=Click For Confirm
    page.on("dialog", lambda dialog: dialog.accept())
    time.sleep(3)
    page.locator("text=Click For Confirm").click()
    time.sleep(3)
    # Click input[name="t1"]
    page.locator("input[name=\"t1\"]").click()
    time.sleep(3)
    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

三.下载文件

# 文件下载
with page.expect_download() as download_info:
    # 点击下载按钮
    page.locator("#file_export_gen_file").click()
download = download_info.value
# 文件存放路径
download.save_as('./playwright.html')

四.playwright 执行 JavaScript 脚本

使用过selenium的人都知道,比如我们要修改某个html标签的属性,或者操作滚动条,那么这时候我们就会在selenium脚本中调用JavaScript脚本,同样,playwright也可以。

page.evaluate (expression, **kwargs)




  

Name:

  

Country:

  

2022年新一代最强开源UI自动化测试神器 ——Playwright(三)_第3张图片

2022年新一代最强开源UI自动化测试神器 ——Playwright(三)_第4张图片

import time

from playwright.sync_api import sync_playwright

"""
修改文本框只读属性,可以输入
"""
def run(playwright):
    browser = playwright.chromium.launch(headless=False,channel="chrome")
    context = browser.new_context()
    # Open new page
    page = context.new_page()
    # 打开html
    page.goto("file:///Users/TesterRoad//readonly.html")
    # 移除readonly属性
    page.evaluate('document.getElementsByName("country")[0].removeAttribute("readonly");')
    # 文本输入
    page.locator("input[name='country']").fill("测试")
    time.sleep(5)
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

2022年新一代最强开源UI自动化测试神器 ——Playwright(三)_第5张图片

//未完待续


最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。

你可能感兴趣的:(技术分享,软件测试,自动化测试,ui,开源,软件测试,测试工程师,自动化测试)