如何使用Playwright定位ID中包含斜杠(/)的页面元素
问题原因
Playwright的选择器解析器默认遵循CSS选择器语法规范,/属于语法保留字符,在简写ID选择器(以#开头的选择器)中直接出现时,解析器会将其判定为语法标记而非ID值的内容,因此抛出Unexpected token "/"的解析错误。示例代码中使用的#A/BC没有对特殊字符做符合规范的处理,无法被正确解析。
解决方法
任选以下一种写法修改定位代码即可:
- 对特殊字符做CSS转义
按照CSS规范,选择器中作为普通内容使用的保留字符,需要前置\做转义。由于Python字符串会将单个\识别为字符串转义符,代码中需要写双反斜杠,才能将正确的转义选择器传递给Playwright:element_info = '#A\\/BC' self.page.locator(element_info).click() - 使用属性选择器定位
直接通过匹配元素id属性的方式定位,不需要额外转义特殊字符,写法容错率更高:element_info = '[id="A/BC"]' self.page.locator(element_info).click()
内容的提问来源于stack exchange,提问作者Tal Angel
相关产品推荐
相关产品推荐

