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



二.playwright 处理对话框
-
alert() -
confirm() -
prompt()
Playwright默认取消对话框,因此我们不需要做任何处理,但是,我们可以通过在触发对话框之前注册一个对话框处理程序。
page.on("dialog", lambda dialog: dialog.accept())
page.locator("button").click()
举个例子,引用某大佬的页面

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)
<html>
<body>
<form action="/example/html/form_action.asp" method="get">
<p>Name:<input type="text" name="email" /></p>
<p>Country:<input type="text" name="country"
value="China" readonly="readonly" /></p>
<input type="submit" value="Submit" />
</form>
</body>
</html>


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)


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

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)