软件测试|web自动化测试神器playwright教程(三)

简介: 软件测试|web自动化测试神器playwright教程(三)

前言

之前两篇文章,我们介绍了playwright框架以及简单使用,作为一款web自动化测试工具,元素定位是最基础的也算最重要的部分,我们在界面上的任何操作,其实都是对页面元素的操作,所以这部分是我们学习的核心。

本篇文章我们就来介绍一下playwright的元素定位与操作。

元素定位与操作

我们都知道selenium支持xpath,css_selector,text以及id、name等HTML属性定位方法,我们最为常用的还是xpath和css_selector两种定位方法。playwright也支持xpath,css_selector等常用定位方法。

下面是我们的定位操作示例:

我们可以先定位再操作

# 先定位再操作
    page.locator('#kw').fill("theshy")
    page.locator('#su').click()

或者直接调用fill 和 click 方法,如下:

page.fill('#kw', "theshy")
page.click('#su')

很显然,直接调用fill和click的代码更为简洁,因此,我们推荐使用下面的方法进行操作。

CSS与xpath定位方法

CSS定位和xpath定位是我们最常用的定位方法,使用也较为简单,示例代码如下:

# CSS and XPath
page.fill('css=#kw', "theshy")
page.click('xpath=//*[@id="su"]')

当然,playwright很聪明,我们可以省略掉我们的定位方法,只保留定位表达式,playwright会自动识别我们的定位方法,只要我们的表达式没有错误,就能正常执行,示例如下:

page.fill('#kw', "theshy")
page.click('//*[@id="su"]')

text 文本定位

text文本定位是非常实用的定位方法,只需要将我们看到的文本写入表达式就可以进行定位,xpath选择器对于text的定位如下所示:

  • 完全匹配文本 //*[text()="theshy "]
  • 部分匹配文本 //*[contains(text(),"theshy")]

playwright 封装了text文本定位的方式,支持如下2种文本定位方式:

page.click("text=theshy")
page.click("text='Theshy'")

text=theshy 和 text='Theshy' 的区别:

  • text=theshy 没有加引号(单引号或者双引号),模糊匹配,对大小写不敏感
  • text='Theshy' 有引号,精确匹配,对大小写敏感

使用示例,比如点击百度首页上的“新闻” 文本,我们可以看到“新闻”是一个a标签

在这里插入图片描述

代码如下:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=1000)
    page = browser.new_page()
    page.goto("https://www.baidu.com")
    print(page.title())
    page.click('text=新闻')
    page.wait_for_timeout(5000)
    browser.close()

除了a标签,文本定位也可以用于对button的定位,比如百度首页的“百度一下”按钮

在这里插入图片描述

定位代码如下:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=1000)
    page = browser.new_page()
    page.goto("https://www.baidu.com")
    print(page.title())
    page.fill("#kw", "theshy")
    page.click('text=百度一下')
    page.wait_for_timeout(5000)
    browser.close()

其他定位方法

playwright还提供了其他内置的定位方法,常用的如下:

  • page.get_by_role()通过显式和隐式可访问性属性进行定位
  • page.get_by_text()通过文本内容定位
  • page.get_by_label()通过关联标签的文本定位表单控件
  • page.get_by_placeholder()按占位符定位输入
  • page.get_by_alt_text()通过替代文本定位元素,通常是图像
  • page.get_by_title()通过标题属性定位元素
  • page.get_by_test_id()根据data-testid属性定位元素(可以配置其他属性)

使用示例

page.get_by_label("User Name").fill("theshy")
page.get_by_label("Password").fill("secret-password")
page.get_by_role("button", name="Sign in").click()
expect(page.get_by_text("Welcome, theshy!")).to_be_visible()

总结

本篇文章主要介绍了playwright的定位方式,playwright支持CSS和xpath这两种最常用的定位方式,还有部分内置的定位方式。后续我们将介绍playwright对元素操作的方法。

相关文章
|
8月前
|
人工智能 自然语言处理 JavaScript
利用MCP Server革新软件测试:更智能、更高效的自动化
MCP Server革新软件测试:通过标准化协议让AI实时感知页面结构,实现自然语言驱动、自适应维护的自动化测试,大幅提升效率,降低脚本开发与维护成本,推动测试左移与持续测试落地。
|
9月前
|
Web App开发 人工智能 自然语言处理
Playwright MCP浏览器自动化指南
本文教你如何通过Playwright MCP让AI直接操作浏览器,自动运行和调试代码,无需手动切换界面。只需简单配置,即可用自然语言指挥AI完成页面操作、问题排查与自主修复,真正实现自动化高效开发。
|
9月前
|
Web App开发 前端开发 JavaScript
Playwright极速UI自动化实战指南
Playwright告别Selenium痛点,以智能等待、强大选择器、网络拦截与多设备模拟四大利器,提升自动化效率与稳定性。本文通过实战代码详解其加速秘籍,助你构建高效、可靠的UI测试方案。
|
8月前
|
数据采集 人工智能 自然语言处理
Playwright MCP 浏览器自动化框架全面解析
Playwright MCP是微软推出的开源项目,结合Playwright与MCP协议,让AI通过结构化数据直接操作浏览器。告别传统视觉识别,实现高效、精准的网页自动化,广泛应用于测试、爬虫、办公自动化等场景,大幅提升效率与可靠性。
|
10月前
|
人工智能 缓存 测试技术
Playwright进阶指南 (6) | 自动化测试实战
2025企业级测试解决方案全面解析:从单元测试到千级并发,构建高可用测试体系。结合Playwright智能工具,解决传统测试维护成本高、环境依赖强、执行效率低等痛点,提升测试成功率,内容从测试架构设计、电商系统实战框架、高级测试策略、Docker化部署、CI/CD集成及AI测试应用,助力测试工程师掌握前沿技术,打造高效稳定的测试流程。
Playwright进阶指南 (6) | 自动化测试实战
|
9月前
|
自然语言处理 前端开发 测试技术
使用 Playwright MCP 实现 UI 自动化测试
本文介绍如何结合Playwright与MCP协议实现智能化UI自动化测试。通过自然语言指令控制浏览器,降低技术门槛,提升效率,并涵盖环境搭建、核心功能、实战案例及最佳实践,展现对话式自动化的未来趋势。
|
9月前
|
人工智能 自然语言处理 监控
Playwright MCP浏览器自动化全攻略
Playwright MCP让AI通过自然语言操控浏览器,无需编程即可实现网页自动化。支持智能元素识别、多浏览器操作与动态交互,广泛应用于搜索、数据抓取、自动发布等场景,大幅提升效率,降低技术门槛,是浏览器自动化的新范式。
|
9月前
|
监控 测试技术 API
n8n自动化测试教程 (1):环境搭建与初识n8n
n8n是一款开源、可视化的工作流自动化工具,测试工程师可通过拖拽节点快速构建API测试流程,实现测试编排、数据管理、自动化监控与告警等功能,提升测试效率与覆盖率。
|
9月前
|
安全 Shell 持续交付
Debian Apache 自动化部署教程:4 种方法,从个人到企业批量装机
本文介绍在 Debian 系统中实现 Apache 自动化部署的 4 种实用方法,涵盖个人单机与企业批量部署场景。内容包括使用 Bash 脚本一键安装、通过 PXE 实现网络批量部署、借助 Ansible/Puppet 进行多机统一配置管理,以及利用 Preseed 文件自动完成安装配置。文章还提供操作示例与避坑建议,帮助用户提升部署效率,降低人为错误。
266 0