量角器:相对于元素的路径

Protractor: path relative from the element

我想写这样的东西:

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 = element(by.Name('Component_name'));

我做错了什么?

我想这是因为 xpath 定位器的选择器。当您使用以 // 开头的表达式时,它会查找页面上的任何元素,即使您将它与父元素一起使用也是如此。 xpath locator:

的文档中有关于它的注释

For example, given the selector "//div", WebDriver will search from the document root regardless of whether the locator was used with a WebElement.

可以通过在双斜杠前加一个点来修复:.//div/div/a,这应该相对于父元素进行搜索。

查看 xpath spec,了解更多信息。