量角器:如何通过精确文本查找元素?

tea*_*ang 8 protractor

测试应用遇到另一个问题.我需要通过精确文本单击元素,所以我找到了一个解决方案,我使用cssContainingText和每个,然后如果声明comapre文本并选择某个元素,但我认为可能是一个更好的解决方案的那个紫色?

第二个问题:在stackoverflow的某个地方,我读到了

element.click().then(){
dosomething;
});
Run Code Online (Sandbox Code Playgroud)

将导致'dosomething;' 将点击后执行,我尝试这个,它不起作用,如何使'dosomething;' 点击后会执行;

Del*_*kin 16

您可以by.xpath用作选择器:

通过确切的文字

element(by.xpath('.//*[.="text"]'))
Run Code Online (Sandbox Code Playgroud)

通过具有确切文本的css类

element(by.xpath('.//*[.="text" and class="some-css-class"]'))
Run Code Online (Sandbox Code Playgroud)

你可以在网上找到很多xpath的例子.还有一个可以使用的测试仪.


Mar*_*pka 5

1)Delian 有正确答案,但在很多情况下元素内容有额外的空格,所以你需要修剪它们:

getElementsByText: function (text, parentXpathSelector) {
    parentXpathSelector = parentXpathSelector || '//';
    return element(by.xpath(parentXpathSelector + '*[normalize-space(text())="' + text + '"]'));
}
Run Code Online (Sandbox Code Playgroud)

2) /sf/answers/1524956191/