大数跨境

Playwright元素定位:文本选择器

Playwright元素定位:文本选择器 慧测
2022-07-25
0
导读:PlayWright元素定位系列课程:文本选择器 Text Selector

1 PlayWright 定位方式

         Playwright和Selenium的元素定位方法有相似之处,因为都是对相同的web页面元素进行定位所以差别不大区别在于它们的定位方,Selenium对每种选择器提供了对应的方法,而PlayWright只需要写定位表达式就可以了,不需要指定具体方法。

         Playwright定位方式是:

page.locator("text=登录账户").click()

         定位器locator通过传入的选择器selector参数进行元素定位,selector就是具体的定位表达式,不同的定位表达式代表不同的定位方式。

2 文本选择器

文本选择器:Text Selector

定位包含某些文本的元素,有下面两种方式:

  • page.locator("text=Log in")
  • page.locator("text='Log in'")

1) text=Log in 和 text='Log in' 的区别:

Log in 没有加引号(单引号或者双引号):要求宽松:模糊匹配、对大小写不敏感

'Log in' 有引号 :要求严格:精确匹配、对大小写敏感

text=Log 匹配下面两种情况 :

<button>Log in</button>

<button>LOG in</button>

text='Log' 不匹配下面两种情况 :


<button>Log in</button>

<button>log</button>

2)空格处理

匹配时如果有多个空格,会将多个空格转化为一个空格,并且去掉头尾空格,比如:

text='Log in' 匹配:

<button>  Log  in  </button>

3) 引号处理

当文本中本身就有引号(单、双)时,需要将引号进行转义,前面加上转义符:\

text=I 'Log' in 匹配:

<button>I 'Log' in</button>

4)value属性

Input元素 和 submit元素的value属性的值也会被text 选择器进行匹配:

text=Login 匹配:

<input type=button value="Login"/>

5)字符串

当只有一个字符串时,playwright会自动转化为文本匹配:

'"Log in"'会自动转化为 'text="Log in"' :

表示精确匹配、并且区分大小写,此种情况只有精确匹配,没有模糊匹配

注意:'"Log in"' 需要双重引号,也可写为"'Log in'"

6)文本选择器支持以 / 开头的JavaScript-like 正则表达式:

text=/Log\s*in/i    匹配:

<input>Login</input>
<input>LOG in</input>

/:表示为JavaScript-like 正则表达式

\s: 空格

前面的字符出现0次或多次

/i:大小写不敏感

3 实战案例

案例页面访问方法,请咨询助教huice666

登录账户 元素定位方式 可以写为:

page.locator("text=登录账户").click()

因为"登录账户"在当前页面是唯一的,因此也可以写为:

page.locator("text='登录账户'").click()

或者直接写字符串:

page.locator('"录账户"').click()


【声明】内容源于网络
0
0
慧测
专注人工智能前沿技术落地企业实战应用
内容 404
粉丝 0
慧测 专注人工智能前沿技术落地企业实战应用
总阅读104
粉丝0
内容404