javascript - TypeError : element(. ..).then 不是 Protractor 3.2.1 中的函数

标签 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(...).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");

关于javascript - TypeError : element(. ..).then 不是 Protractor 3.2.1 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36654313/

相关文章:

linux - 从 Jenkins 或 Linux 控制台运行时 Chromedriver 失败

javascript - Node.JS - 如何在 JS 中对动态文件名进行验证?

angular - 如何使用不同的 Angular 环境变量运行 Protractor e2e 测试

javascript - Angular 8 中的 api 调用,结果未定义

javascript - 带有文本的光滑 slider 轮播

java - 将字符串数组附加到单个字符串

python - 机器人框架: how to encode string using ascii?

element - Protractor : wait for element to become invisible/hidden

javascript - <p> 标签或 <span> 标签中网页上的任何文本都可以通过编程方式选择吗?

javascript - d3时间刻度在时间范围之前和之后添加时间间隔的百分比