【playwright】新一代自动化测试神器playwright+python系列课程10_playwright元素定位_正则表达式应用

Playwright 元素定位_正则表达式应用。

Playwright框架下使用文本定位元素时,是支持正则表达式的,可以定位文本符合正则表达式的元素,另外使用正则表达式可以精确匹配文本。
在这里插入图片描述

例如上图中的登录按钮,如果使用登录两个字定位的话会定位到两个元素,因为还有保持登录,中也包含了登录两个字,这种情况下使用文本定位时可以设置exact=True来保证精确定位到登录按钮,使用方法:get_by_text(‘登录’,exact=True)。除了这种方法也可以使用正则来确保精确定位到登录按钮,使用方法:

page.get_by_text(re.compile('^登录$'))

另外我们也可以利用正则来实现一些灵活定位的场景,例如我们要定位下图中红框中的元素。

我们发现这些元素的前三个数字是123,后面的数字不一样,如果我们要一次性全部定位到这三个元素的话,就可以使用正则,使用方法:

get_by_text(re.compile('123\d+'))

在这里插入图片描述

实践代码:

# '''
# author: 测试-老姜   交流微信/QQ:349940839
# 欢迎添加微信或QQ,加入学习群共同学习交流。
# QQ交流群号:877498247
# 西安的朋友欢迎当面交流。
# '''

from playwright.sync_api import sync_playwright,Playwright,expect
import re
with sync_playwright() as p:
    browser = p.chromium.launch(headless=False,slow_mo=2000) # 设置有头模式启动chrome浏览器
    context = browser.new_context() # 创建上下文,打开浏览器
    page = context.new_page() # 打开标签页
    page.goto('http://127.0.0.1/zentao/user-login-L3plbnRhby8=.html')
    page.locator('.form-control').and_(page.locator('[type="text"]')).fill('admin')
    page.locator('[type="password"]').fill('Deshifuzhi01')
    page.get_by_text(re.compile('^登录$')).click() #利用正则实现文本精确匹配
    page.locator('a').filter(has_text=re.compile('^测试$')).click()#过滤中利用正则实现文本精确匹配
    page.goto('http://127.0.0.1/zentao/testcase-browse-1.html')
    reg = re.compile('123\d+')
    r = page.frame_locator('#appIframe-qa').get_by_text(reg).count() # 定位文本是123开头后面是至少1个数字的元素
    print(r)
    page.wait_for_timeout(10000)
    context.close()
    browser.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值