绝对和相对xpath有什么区别?哪个在Selenium自动化测试中首选? 我正在使用Selenium和Robot框架准备测试脚本。
答案 0 :(得分:9)
绝对Xpath :它使用从根元素到欲望元素的完整路径。
相对Xpath :您只需从引用所需元素开始,然后从那里开始。
始终相对Xpath是首选,因为它们不是Root元素的完整路径。 (// html // body)..在将来添加/删除任何webelement然后绝对Xpath更改时。因此,请始终在自动化中使用相对X路径。
以下是一些链接,您可以参考这些链接以获取更多相关信息。
答案 1 :(得分:6)
HTML DOM中的绝对xpath以/ html开头,例如
/html/body/div[5]/div[2]/div/div[2]/div[2]/h2[1]
并且相对xpath找到dom元素的闭合id并从该元素开始生成xpath,例如
.//*[@id='answers']/h2[1]/a[1]
您可以使用firepath(firebug)生成两种类型的xpath
你在硒中使用的xpath没有任何区别,前者可能比后者快(但它不会被观察到)
绝对xpath容易出现更多回归,因为DOM的微小变化会使它们无效或引用错误的元素
答案 2 :(得分:1)
考虑下面的Html
<html>
<body>
<input type ="text" id="username">
</body>
</html>
所以绝对路径 = html / body / input 和相对路径 = // * [@ id =“用户名”]
Absolute xpath的缺点是维护很高,如果在html中有任何改变可能会干扰整个路径,有时我们需要编写长绝对x路径,所以相对xpath是首选
答案 3 :(得分:0)
绝对 XPath: 它是查找元素的直接方法,但绝对 XPath 的缺点是如果元素路径发生任何更改,则 XPath 将失败。
XPath 的关键特性是它以单个正斜杠 (/) 开头,这意味着您可以从根节点中选择元素。
以下是绝对 xpath 的示例。
/html/body/div[1]/section/div/div[2]/div/form/div[2]/input[3]
相对 Xpath: 相对 Xpath 从 HTML DOM 结构的中间开始。它以双正斜杠 (//) 开头。它可以搜索网页上任何位置的元素,意味着无需编写很长的 xpath,您可以从 HTML DOM 结构的中间开始。相对 Xpath 总是首选,因为它不是从根元素开始的完整路径。
下面是一个相对 XPath 的例子。
//input[@name=’email’]