如何使用XPath定位指定id的label对应的上层同级input元素
错误原因
- 语法问题:原XPath中属性筛选错误使用了圆括号
(),正确应为方括号[];同时id属性大小写敏感,原写法的star和实际标签的Star不匹配 - 逻辑问题:原写法选中了label父级div下全部3个input子节点,自然返回多个匹配结果
正确XPath写法
使用preceding-sibling轴定位当前label节点前面最近的同层级input:
//label[@id='Star']/preceding-sibling::input[1]
该XPath只会匹配到label#Star上方紧邻的input元素,不会命中其他两个和Moon、Sun绑定的input。
完整代码
driver.findElement(By.xpath("//label[@id='Star']/preceding-sibling::input[1]"));
内容的提问来源于stack exchange,提问作者Ajay vavhal
相关产品推荐
相关产品推荐

