Angular2中的量角器实现,不使用id

时间:2017-11-16 07:33:55

标签: protractor

我在Angularjs2中有应用程序,开发人员还没有使用id。现在我必须在同一个应用程序上实现Protractor。反正有没有使用“绝对XPath”来实现量角器?

提前致谢!

1 个答案:

答案 0 :(得分:0)

请在official Protractortest API Page

上找到大量的定位器可能性

页面上的每个元素都需要是唯一可识别的......否则无论使用哪种技术,页面都无法正常工作。因此,借助上述任何一种定位器的可能性,您总能找到您正在寻找的元素。

并且永远不需要XPath,except for this only one。 (虽然有一个parentElementArrayFinder introduced in the meantime,所以即使一个例外也不再有效)

<强> UDPATE

如果你可以使用XPath,你肯定可以使用CSS-Locators。

以下是定位器的一些示例:

  • $('div.class#id[anyAttribute="anyValue"] div.child.somewhere-below-div-point-class')
  • element(by.cssContainingText('div[data-index="2"]', 'select this option'))

或者作为https://js.devexpress.com/的“树列表”部分的“了解更多”的具体示例:

treeListSection = element(by.cssContainingText('div.tab-content h2', 'Tree List')).getDriver();
learnMoreBtn = treeListSection.element(by.cssContainingText('a.tab-button','Learn More'));
learnMoreBtn.click();

这些只是一些例子,但始终有办法实现。 如果您在问题中提供了一些示例HTML,我可以指导您找到解决方案。

更新2
要获取父Web元素,还可以use getDriver()