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

Mur*_*hna 4 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);
            });
        }); 
Run Code Online (Sandbox Code Playgroud)

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

TypeError:element(...).那么它不是一个函数

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

ale*_*cxe 10

是的,这是你应该期待的东西,因为element()不能再用它来直接解决then()了(在Protractor 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);
});
Run Code Online (Sandbox Code Playgroud)

需要注意的是,如果你需要断言的文字,你可以传递getText()expect()-它能够理解的承诺是什么,使一个期望之前就解决它:

expect(elm.getText()).toEqual("Expected text");
Run Code Online (Sandbox Code Playgroud)