使用xpath轴为链接元素编写xpath定位器

时间:2014-01-03 08:10:19

标签: selenium xpath

我正在尝试学习Selenium,并且正在尝试为网页上的“关于我们”链接编写xpath定位器 - www.hdfc.com

我可以用链接作为:

link =关于我们

我尝试了以下内容并且工作正常:

xpath = // a [text()='关于我们']

但我想用xpath轴编写定位器,以便它足够灵活。有人可以指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

如果您提出了可以使用的最佳选择器ID,这是因为ID(很像类名等)根本不依赖于文档的结构,而是更多地关注元素的内容或目的。在这种情况下,你会想要像:

driver.findElements(By.Id("ic-aboutUs");

你应该注意的另一件事是,与使用CSS选择器相比,xpath表达式被认为是识别元素的更糟糕的方法,特别是如果你在IE中进行测试,因为xpath实现不是原生的,而且非常慢。我建议阅读http://saucelabs.com/resources/selenium/css-selectors以简要介绍一些示例,也可能有http://saucelabs.com/resources/selenium/selenium-xpath-marks-the-spot的内容,以便了解使用xpath的一些不利因素。

答案 1 :(得分:0)

使用以下x路径检测网页中的“关于我们”链接

  1. xpath是通过引用直接父节点编写的 // li [@class ='展开'] / child :: span [text()='关于我们']

  2. 此xpath是使用菜单栏的父节点(整个菜单项的父节点)编写的 // ul [@class =' menu hdfc-investor'] / child :: li [contains(。,' About Us')]