通过部分类名识别定位器

问题描述 投票:0回答:1

我有以下元素,其中第一部分始终保持不变(_wrapper_),但第二部分(12npv_9)始终在新构建后更改其值

<div class="_wrapper_12npv_9">

我想编写一个定位器,它始终选择类名的第一部分,而不考虑第二部分。到目前为止,我已经有了这个,但它显示错误“找不到名称'_wrapper_'”

await page.locator('div[contains(@class,'_wrapper_')]')

我怎样才能做到只考虑类名的第一个常量部分,即“_wrapper_”?

html typescript automation attributes playwright
1个回答
0
投票

page.locator
可以接受
CssSelector
XPath
并自行识别您输入的是哪一个。
在这里,您尝试输入
XPath
,这就是您的问题:

// Wrong - Missing "//" at the beginning and uses single quotes within single quotes
await page.locator('div[contains(@class,'_wrapper_')]')

// Correct
await page.locator("//div[contains(@class, '_wrapper_')"]

此外 - 在这种情况下,最好使用

starts-with
而不是
contains
,如下所示:

await page.locator("//div[starts-with(@class, '_wrapper_')"]
© www.soinside.com 2019 - 2024. All rights reserved.