【问题标题】:xpath getting changed on each time of webdriver code execution每次执行 webdriver 代码时 xpath 都会发生变化
【发布时间】:2018-07-12 15:47:39
【问题描述】:

每次执行 webdriver 代码时,xpath 都会发生变化 driver.findElement(By.xpath("/html/body/app-root/app-patient-index/app-patient-profile/div[1]/ div[2]/div/tabset/div/tab[1]/form/div/div[3]/div/div[1]/ul/li[1]/div/div[2]/div/div[ 2]/input")).sendKeys("KS");

控制台错误线程“main”org.openqa.selenium.NoSuchElementException中的异常:没有这样的元素:无法找到元素:{“method”:“xpath”,“selector”:“/html/body/app-root /app-patient-index/app-patient-profile/div[1]/div[2]/div/tabset/div/tab[1]/form/div/div[3]/div/div[1]/ ul/li[1]/div/div[2]/div/div[2]/input"}

如何解决?

【问题讨论】:

  • 您需要发布相关的 HTML。

标签: testing automation webdriver qa


【解决方案1】:

如果您的 XPATH 每次执行都发生变化,那么您的页面具有动态结构。在这种情况下避免绝对 XPATH,它将不起作用。您应该使用另一个唯一的定位器。例如,使用相对 XPATH。有了它,您可以与没有唯一 idclass 的页面元素进行交互。你所需要的只是一个有一个父元素。您的定位器将简短而可靠

相对 XPATH 的示例

//*[@id="question-header"]/h1/a

【讨论】:

  • 如何在 chrome 中找到相关的 XPath?
  • @Sayoj 您只需要访问页面源代码即可。您可以手动编写或使用 Chrome 内置工具: 1. 检查页面上的元素。 2. 右键单击​​ Chrome DevTools 元素选项卡中的元素。 3.选择复制->复制XPATH
  • 我也是这样用的
  • @Sayooj 这就是为什么您总是需要将相对 XPath 调整为唯一的静态页面元素的原因。因为复制粘贴并不总是有效。有很多 XPath 教程,你可以从this one开始
猜你喜欢
  • 2018-05-08
  • 2020-02-03
  • 2017-06-15
  • 1970-01-01
  • 2021-02-11
  • 2018-04-01
  • 2012-11-29
  • 2016-05-24
  • 1970-01-01
相关资源
最近更新 更多