Python写UI自动化--playwright(通过UI文本匹配实现定位)

本篇简单拓展一下元素定位技巧,通过UI界面的文本去实现定位

目录

匹配XPath

匹配文本元素

.count()统计匹配数量

处理匹配文本返回多个元素

1、使用.nth(index)选择特定元素:

2、获取所有匹配的元素并遍历:

3、错误处理:


匹配XPath

比如我们要定位到下图的"百度一下"

先上代码

python 复制代码
from playwright.sync_api import sync_playwright
def usage_1():
    with sync_playwright() as p:
        #启动谷歌浏览器实例
        browser = p.chromium.launch(headless=False)
        page = browser.new_page()
        page.goto("https://www.baidu.com")
        # 在搜索框中输入关键词
        page.locator('//input[@name="wd"]').fill("搜索")
        # 点击"百度一下"按钮进行搜索
        page.click("//input[@value='百度一下']")

之前我们通过XPath 定位 ://input@value='百度一下',这个方法可行。

匹配文本元素

接下来我们使用get_by_text()方法匹配文本元素来实现定位,先断点调试一下

.count()统计匹配数量

get_by_text('需要查询的文本').count() 方法可以帮我们查询统计'百度一下' 文本在此时的UI页面有多少个,result={int}1 这个结果证明只有一个,是唯一的。继续调试

将count()方法换成click()方法,可以看到结果是成功了,现在切回UI检查是否点击'百度一下'成功,显而易见,使用get_by_text('百度一下')方法是可以成功实现元素定位操作的

处理匹配文本返回多个元素

1、使用.nth(index)选择特定元素:

如果你想要选择特定索引的元素,可以使用.nth(index)方法,其中index是从0开始的。

python 复制代码
page.get_by_text('需要匹配的文本').nth(1)  # 获取第二个匹配的元素

2、获取所有匹配的元素并遍历:

如果需要处理所有匹配的元素,可以使用.all()方法来获取一个包含所有匹配元素的列表,然后遍历这个列表。

python 复制代码
elements = page.get_by_text('需要匹配的文本').all()
for element in elements:
    print(await element.inner_text())

3、错误处理:

如果你期望只有一个匹配项,但是可能找到多个,可以检查返回的元素数量,并根据需要抛出异常或采取其他行动。

python 复制代码
elements = page.get_by_text('需要匹配的文本').all()
if len(elements) > 1:
    raise Exception("预期找到一个元素,但实际上找到了多个元素")
element = elements[0]

希望通过以上内容能有效帮助到萌新友友理解使用playwright进行文本匹配操作实现元素定位!

相关推荐
2601_9621282611 分钟前
Nginx目录结构
运维·nginx
丈剑走天涯21 分钟前
基于 Python 3 语法的 PyCharm 练习示例,涵盖列表操作、类型判断及数据清洗等核心知识点
windows·python·pycharm
MayZork36 分钟前
Windows 与 Linux 下 vcpkg 的安装部署指南
linux·运维·windows
yyuuuzz39 分钟前
记一次 VPS 性能排查:共享 CPU 突发额度导致的限流
运维·服务器·人工智能
冰雪青松44 分钟前
Ubuntu 运维命令大全:从入门到精通的实战参考手册
运维·服务器·ubuntu
————A1 小时前
Agent 接收用户上传文件
人工智能·笔记·python·状态模式
可乐鸡翅yeah_1 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
可乐鸡翅yeah_1 小时前
第三方接口对接 M3U8 流媒体排坑实战,解决外部服务商流兼容难题
前端·javascript·python·django·html·m3u8·m3u8在线
金融小师妹1 小时前
多因子智能推演:黄金震荡回升,杰克逊霍尔“沃什首秀”政策如何重塑金价路径的AI预测框架
大数据·人工智能·python·线性回归
阿童木写作1 小时前
跨马翻译:AI批量图片翻译与视频字幕翻译工具推荐
人工智能·python·音视频