我在Angularjs2中有应用程序,开发人员还没有使用id。现在我必须在同一个应用程序上实现Protractor。反正有没有使用“绝对XPath”来实现量角器?
提前致谢!
答案 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()