我有这个代码
WebElement element = driver.findElement(By.id("j_idt9:usuario"));
我想知道如何使用 XPath 搜索特定 ID。在本例中,我想搜索“usuario”部分,因为“j_idt9”部分发生了变化。我知道可以使用 CSS 选择器来完成,但我需要使用 XPath。
最佳答案
你应该告诉你的教授,CSS 选择器不仅仅适用于类......如果他/她真的这么说,他们应该感到尴尬并去读一些书。他们可以从这两个引用文献开始:
https://www.w3.org/TR/selectors/#selectors
https://saucelabs.com/resources/articles/selenium-tips-css-selectors
如果你必须使用 XPath,它看起来像
"//*[ends-with(@id, 'usuario')]"
您最好使用 CSS 选择器,因为它速度更快,并且具有更好、更一致的浏览器支持。它看起来像
"[id$='usuario']"
一般来说,您的定位器策略应该如下所示......
- 按.id
- By.linkText、By.partialLinkText
- By.cssSelector
- 然后作为最后的手段,By.xpath
仅当其他方法不起作用时才应使用 By.xpath。例如,您需要通过元素包含的文本查找元素,或者您必须执行 CSS 无法执行的一些父/子转换。
关于java - 通过 ID 查找元素,其中 ID 是动态的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900488/