使用Playwright Inspector对网页进行UI检查和测试用例生成

参数命令:python3 -m playwright codegen   会自动打开两个窗口,左侧浏览器区域,右侧代码生成区,左侧直接操作,右侧即可生成对应的操作。当然如果生成的代码元素定位想要更换,可点击Recode暂停后,点击下方的浏览器定位,点到左侧的元素区域,重新定位元素。

playwright本身的python3 -m playwright codegen 命令已经提供足够强大的代码生成功能,但是录制生成的代码终究只是辅助功能,每次不可能都完全只使用录制的代码,而每次需要使用playwright codegen  命令时都需要重新执行命令然后打开浏览器操作,不够灵活,使用Playwright Inspector插件可以随时提供支持,

Playwright Inspector 是一个用于网页UI检查和测试用例生成的工具。它可以帮助测试人员更快速地理解网页结构,定位测试元素,并生成相应的Playwright测试代码。

Playwright Inspector原理

Playwright Inspector 基于 Playwright,通过以下方式实现其功能:

1. 启动带有Inspector的Chromium浏览器,访问目标网页。

2. Inspector会自动检测网页DOM结构,提取所有可测试元素,如按钮、输入框、链接等。

3. 测试人员可以在Inspector界面查看所有可测试元素,选择元素并生成Playwright测试代码。

4. Inspector会实时跟踪用户在浏览器中的每一次点击、输入等操作。如果用户在浏览器中执行某个交互,Inspector可以立即生成相应的Playwright测试代码。

5. Inspector可以一键下载生成的测试代码,用户只需要将其复制到测试脚本中,就可以完成自动化测试。

6. Inspector不依赖任何代码或框架,只需要简单的浏览器安装即可使用,大大降低了测试人员的学习成本。

Playwright Inspector步骤

1. 安装Playwright Inspector浏览器扩展。

2. 打开带有Inspector的Chromium浏览器。

3. 访问需要测试的网页。Inspector会自动检测网页元素并显示在界面左侧。

4. 选择想要测试的元素,点击“Generate Code”按钮生成Playwright代码。

5. 点击“Download Code”按钮下载生成的测试代码。

6. 将下载的测试代码复制到Playwright测试脚本中,然后运行该脚本即可完成测试。

7. 如果在浏览器中执行某个交互,Inspector会实时生成对应的测试代码。可以直接使用该代码完成测试用例。

8. 如有需要,可以在Inspector中重新选择其他元素,生成更多测试代码。

9. 使用常规方式运行和调试Playwright测试脚本,实现对目标网页的UI自动化测试。

Python示例

from playwright.sync_api import sync_playwright
def run(playwright):    browser = playwright.chromium.launch()    page = browser.new_page()    page.goto("http://www.whatsmyuseragent.org/")    page.fill("#ua-string-input", "Hello")    page.click("text=Check User Agent")    page.wait_for_selector("text=User Agent String: Hello")    browser.close()    with sync_playwright() as playwright:run(playwright)

这个测试脚本是使用Inspector一键生成的,可以在whatsmyuseragent.org网站输入“Hello”,并验证结果是否正确。测试人员只需要从Inspector下载代码,然后运行该脚本即可完成测试,无需理解网站的具体 DOM 结构。

import com.microsoft.playwright.*;
public class Example {    public static void main(String[] args) {        Playwright playwright = Playwright.create();        Browser browser = playwright.chromium().launch();        Page page = browser.newPage();        page.navigate("http://www.whatsmyuseragent.org/");        page.fill("#ua-string-input", "Hello");        page.click("text=Check User Agent");        page.waitForSelector("text=User Agent String: Hello");        browser.close();        playwright.close();    }}

Java示例的使用方式与Python示例基本一致。测试人员只需要从Inspector一键生成Java测试代码,然后运行即可,无需了解网页DOM结构和Playwright API。

总结

Playwright Inspector提供了强大的UI检查和测试用例生成功能,可以大幅提高测试人员的工作效率。理解Playwright Inspector的工作原理及其使用步骤,可以帮助我们更快速精准地完成测试开发任务。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用 Python Playwright 对 CSDN 登录进行 UI 自动化分层设计的完善示例: 1. 安装 Playwright 首先需要安装 Playwright Python 库,可以使用以下命令进行安装: ```python pip install playwright ``` 2. 创建项目目录结构 在本地创建一个项目目录,例如 "CSDN_Automation",并在该目录下创建以下文件和文件夹: - `main.py`:主程序文件 - `pages` 文件夹:存放页面对象类文件 - `tests` 文件夹:存放测试用例文件 3. 创建页面对象类 在 `pages` 文件夹下创建一个 `CSDNLoginPage.py` 文件,该文件定义了 CSDN 登录页面的所有元素和操作: ```python from playwright.sync_api import Page class CSDNLoginPage: def __init__(self, page: Page): self.page = page def navigate(self): self.page.goto("https://passport.csdn.net/login") def input_username(self, username: str): self.page.fill("[name='username']", username) def input_password(self, password: str): self.page.fill("[name='password']", password) def click_login_button(self): self.page.click("[data-type='account']") def login(self, username: str, password: str): self.navigate() self.input_username(username) self.input_password(password) self.click_login_button() ``` 在该页面对象类中,我们定义了 CSDN 登录页面的所有元素和操作,包括页面导航、输入用户名和密码、点击登录按钮等。通过这样的封装,我们可以在测试用例中直接调用 `login` 方法来完成登录操作。 4. 创建测试用例 在 `tests` 文件夹下创建一个 `test_login.py` 文件,该文件定义了 CSDN 登录的测试用例: ```python import pytest from playwright.sync_api import Playwright, Page from pages.CSDNLoginPage import CSDNLoginPage @pytest.fixture(scope="module") def csdn_login_page(playwright: Playwright) -> Page: with playwright.chromium.launch(headless=False) as browser: with browser.new_context() as context: page = context.new_page() csdn_login_page = CSDNLoginPage(page) yield csdn_login_page def test_login_success(csdn_login_page: CSDNLoginPage): csdn_login_page.login("your username", "your password") assert "CSDN" in csdn_login_page.page.title() ``` 在该测试用例中,我们首先使用 `pytest.fixture` 装饰器定义了一个 `csdn_login_page` 的 fixture,用于创建 `CSDNLoginPage` 实例并返回该实例中的 `page` 对象。在 `test_login_success` 测试用例中,我们调用 `csdn_login_page` 实例的 `login` 方法来完成登录操作,并通过断言验证登录成功后页面标题中是否包含 "CSDN"。 5. 运行测试 最后,在项目目录下运行以下命令来执行测试: ```python python -m pytest ``` 这样就完成了基于 Python Playwright 的 CSDN 登录 UI 自动化分层设计的示例。在实际应用中,我们可以根据需要增加更多的页面对象类和测试用例,从而实现更全面的 UI 自动化测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值