量角器:获得与xpath绑定的值

时间:2014-04-18 18:13:34

标签: angularjs xpath protractor angularjs-e2e

如果我有这样的HTML:

<body>
    <div id="menu">
       <div id="button"> {{ someBinding }} </div>
    </div>
</body>

我在量角器中有这样的声明:

ptor.findElement(By.xpath("/body/div[@id='menu']/div[@id='button']"));

我将使用什么来获取 {{someBinding}} 的值?似乎量角器试图将值与绑定名称进行比较。因此,如果我希望 {{someBinding}} 说出“Hello World”,则会抛出错误说

Expected: {{someBinding}} to equal 'Hello World'

3 个答案:

答案 0 :(得分:7)

我认为你需要在元素上调用.getText()。

el = ptor.findElement(By.xpath("/body/div[@id='menu']/div[@id='button']"))

所以你的整个陈述将是:

expect(el.getText()).toBe('Hello World');

我还会考虑使用不同的定位器,例如CSS定位器(如果使用id),或者查看绑定定位器。

https://github.com/angular/protractor/blob/master/docs/api.md#webdriverwebelementprototypegettext https://github.com/angular/protractor/blob/master/docs/api.md#protractorbyprototypebinding

答案 1 :(得分:2)

如果有其他人在寻找它,我找到了解决方案。添加到@ rjferguson21的答案,期望行应如下所示:

expect(el.evaluate("someBinding")).toBe("Hello World");

我认为这是Protractor的更新。

答案 2 :(得分:2)

请注意,您不必为此使用xpath选择。试试binding定位器:

var el = element(By.binding('someBinding'));
expect(el.getText()).toBe('Hello World');