按ID查找ID为动态

时间:2016-12-01 00:08:33

标签: java selenium automated-tests

我有这段代码

WebElement element = driver.findElement(By.id("j_idt9:usuario"));

我想知道如何使用XPath搜索特定的ID。在这种情况下,我想搜索“usuario”部分,因为“j_idt9”部分发生了变化。我知道可以使用CSS Selector完成,但我需要使用XPath。

1 个答案:

答案 0 :(得分:2)

你应该告诉你的教授,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']"

通常,您的定位器策略应如下所示......

  1. By.id
  2. By.linkText,By.partialLinkText
  3. By.cssSelector
  4. 然后作为最后的手段,By.xpath
  5. 仅当其他方法不起作用时才应使用By.xpath。像你需要通过它包含的文本找到一个元素,或者你必须做一些CSS不能做的父/子班次。