首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绝对xpath和相对xpath有什么区别?在Selenium自动化测试中,哪个是首选的?

绝对xpath和相对xpath有什么区别?在Selenium自动化测试中,哪个是首选的?
EN

Stack Overflow用户
提问于 2014-11-28 14:47:11
回答 5查看 137.6K关注 0票数 14

绝对xpath和相对xpath有什么区别?在Selenium自动化测试中,哪个是首选的?我正在使用Selenium和Robot框架准备测试脚本。

EN

回答 5

Stack Overflow用户

发布于 2014-11-28 15:02:42

绝对:它使用从根元素到期望元素的完整路径。

相对Xpath:您可以简单地从引用所需的元素开始,然后从那里开始。

相对Xpath总是首选的,因为它们不是根元素的完整路径。(//html//body)。因为在将来,如果添加/删除了任何webelement,那么绝对Xpath就会改变。因此,在Automation中始终使用相对Xpath。

下面是一些链接,您可以参考这些链接以获取有关它们的更多信息。

  • difference-between-absolute-path
  • xpath-tutorial-for-selenium
  • choosing-effective-xpath
票数 16
EN

Stack Overflow用户

发布于 2014-11-28 15:03:28

HTML DOM中的绝对xpath以/html开头,例如

代码语言:javascript
复制
/html/body/div[5]/div[2]/div/div[2]/div[2]/h2[1]

并且相对xpath找到dom元素的封闭id并从该元素开始生成xpath,例如

代码语言:javascript
复制
.//*[@id='answers']/h2[1]/a[1]

可以使用firepath (firebug)生成这两种类型的xpath

在selenium中使用哪个xpath没有任何区别,前者可能比后者更快(但它不会被观察到)

绝对xpath容易出现更多的回归,因为DOM中的细微变化会使它们无效或引用错误的元素

票数 6
EN

Stack Overflow用户

发布于 2017-07-13 17:52:49

考虑下面的Html

代码语言:javascript
复制
<html>
  <body>
    <input type ="text" id="username">
  </body>

</html>

所以输入输入相对路径=//*@id=“用户名”

绝对xpath的缺点是维护性很高,如果在html中没有做任何更改,它可能会干扰整个路径,而且有时我们需要写很长的绝对xpath,所以相对xpath是首选的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27183353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档