使用含nth元素的CSS选择器时Playwright代码报错如何修复(不修改CSS)
不修改CSS表达式修复:nth(3)选择器无效问题
原生CSS规范里没有:nth()这种伪类写法,你写的选择器不符合标准才会触发报错。要在不修改原CSS表达式的前提下解决问题,直接用Playwright locator自带的nth()方法来指定索引即可:
把原代码里嵌在CSS选择器中的:nth(3)移除,改用locator链调用.nth(2)(注意Playwright的索引是从0开始计数的,第3个元素对应索引值为2)。修改后的完整代码如下:
try: expect(self.page.locator('div[class="some-class"]').nth(2)).to_be_visible(timeout=20000) return True except AssertionError: return False
这种方式的核心逻辑是:完全保留你原本的CSS选择器div[class="some-class"],用Playwright的API来完成索引筛选,既满足“不修改CSS表达式”的要求,又能正确定位到目标元素。
内容的提问来源于stack exchange,提问作者Tal Angel
相关产品推荐
相关产品推荐

