Playwright相邻兄弟定位器问题:点击指定span后的第二个div
解决Playwright中通过相邻兄弟定位目标div的问题
你遇到的问题是用CSS相邻兄弟选择器+ div + div无法定位到目标元素,这里提供两种可靠的修改方案:
方案1:使用XPath的following-sibling定位
直接定位到Algorithm span的第二个同级div元素,代码如下:
await page.getByText("Algorithm").first().locator("xpath=following-sibling::div[2]").click();
following-sibling::div[2]会选中当前span元素之后的第二个div兄弟节点,正好对应你要点击的“click me”所在的div。
方案2:通过父容器索引定位
先找到span的父div,再选中其中的第二个div,代码如下:
await page.getByText("Algorithm").first().locator("xpath=../div[2]").click();
../表示回到当前span的父元素(外层div),然后div[2]选中父元素下的第二个div子节点,同样能精准定位目标。
原代码失败的可能原因:虽然CSS的+ div + div逻辑上是对的,但Playwright在链式locator中对CSS相邻兄弟选择器的解析可能存在兼容性问题,改用XPath的定位方式会更稳定。
内容的提问来源于stack exchange,提问作者utkarsh-k
相关产品推荐
相关产品推荐

