TypeError:element(...)。那么它不是Protractor 3.2.1中的函数

时间:2016-04-15 18:22:16

标签: javascript selenium-webdriver protractor webdriverjs

我正在使用以下代码

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(...)。然后不是函数

我可能会遗漏一些东西但不确定是什么。

1 个答案:

答案 0 :(得分:10)

是的,这是你应该期待的,因为element()不能再用then()直接解决(Protractor 2.0中的breaking change)。相反,做:

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()传递给expect() - 它了解承诺是什么,并会在做出预期之前解决它:

expect(elm.getText()).toEqual("Expected text");