使用量角器获取跨度中的文本

时间:2016-08-01 12:57:22

标签: javascript angularjs jasmine protractor

我需要检查,使用expect和Jasmine,如果按钮中的跨度文本是" Vigente"。我该怎么办?

<button _ngcontent-hke-28="" class="btn btn-success disabled" tabindex="-1">
<span _ngcontent-hke-28="" class="glyphicon glyphicon-check">
</span> Vigente</button>

我可以像这样使用xpath:

  

/ HTML /体/应用/ AUTH-容器/布局/ DIV /主内容/ DIV /诺玛-cadastro / DIV /形式/ DIV [8] / DIV /按钮/文本(Vigente)

2 个答案:

答案 0 :(得分:3)

首先,您询问的XPath表达式不正确 - 不需要括号内的Vigente部分。另外,尽量不要使用绝对XPath表达式,因为路径中的级别越多,它就越有可能中断。而且,XPaths are not recommended by the Protractor team

相反,我会找到元素by partial button text并检查此元素是否存在:

expect(element(by.partialButtonText("Vigente")).isPresent()).toBe(true);

或者,您可以通过CSS选择器找到元素并获取文本:

expect($("button.btn-success").getText()).toContain(Vigente);

button.btn-success CSS选择器非常广泛,看看你是否可以改进它。

答案 1 :(得分:0)

不能说是否正确..但您可以在Chrome开发工具中自行查看。只需要检查元素上的元素。然后右键单击HTML中的元素,然后单击“复制”。如果可以,我建议使用ID或角度模型。 XPath随着HTML的变化而变化(除非你在XPath中使用ID),然后维护测试成为一项任务。

查看图片。

enter image description here