我想写一些类似的东西:
return component.element(by.xpath('//div/div/a')); // I want: path to component + xpath
但我的结果总是如此:
return element(by.xpath('//div/div/a')); // I always have: just xpath
Component是在我自己的定位器中找到的元素:
component = element(by.Name('Component_name'));
我做错了什么?
答案 0 :(得分:2)
我想这是因为xpath定位器的选择器。当您使用以//
开头的表达式时,它将在页面上查找任何元素,即使您将其与父元素一起使用也是如此。 xpath locator的文档中有关于它的说明:
例如,给定选择器" // div",WebDriver将从中搜索 无论定位器是否与a一起使用,文档根目录 WebElement。
可以通过在双斜线前加一个点来修复它:.//div/div/a
,它应该相对于父元素进行搜索。
查看xpath spec,了解更多信息。