4

我正在使用以下代码

element(by.xpath("//tf-navpane-item[contains(@class,'tf-state-selected')]//tf-navpane-item-text//*[contains(@class,'ng-binding')]")).then(function(ele){
            ele.getText().then(function(txt){
                console.log("txt: "+txt);
            });
        }); 

当我使用 Protractor 1.0 时,这段代码可以正常工作。将 Protractor 升级到 3.2.1 后,我开始出现以下错误。

TypeError: element(...).then 不是函数

我可能错过了一些东西,但不确定是什么。

4

1 回答 1

10

是的,这是您应该期待的,因为element()无法再直接解决then()(量角器 2.0 中的重大更改)。相反,请执行以下操作:

var elm = element(by.xpath("//tf-navpane-item[contains(@class,'tf-state-selected')]//tf-navpane-item-text//*[contains(@class,'ng-binding')]"));
elm.getText().then(function(txt) {
    console.log("txt: " + txt);
});

请注意,如果您需要断言文本,您可以传递getText()into expect()- 它了解什么是承诺,并会在做出期望之前解决它:

expect(elm.getText()).toEqual("Expected text");
于 2016-04-16T00:12:10.143 回答