TypeError: element(...).then is not a function in Protractor 3.2.1
TypeError: element(...).then is not a function in Protractor 3.2.1
我正在使用以下代码
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 is not a function
我可能遗漏了什么但不确定是什么。
是的,这是你应该预料到的,因为 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()
- 它理解什么是 promise 并会在做出期望之前解决它:
expect(elm.getText()).toEqual("Expected text");
我正在使用以下代码
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 is not a function
我可能遗漏了什么但不确定是什么。
是的,这是你应该预料到的,因为 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()
- 它理解什么是 promise 并会在做出期望之前解决它:
expect(elm.getText()).toEqual("Expected text");