量角器承诺getText()

时间:2018-05-24 12:57:47

标签: javascript protractor

我好几个月没有使用量角器,发现自己不得不回去了。然而,我失败了一个我过去曾经工作过的非常简单的事情(甚至使用相同的代码也无济于事。)

我有一个包含以下html的页面:

<label class="control-label field-required" style="">The text I want</label>

所以我想比较一下这个文本是否匹配另一个值。所以我使用了以下内容:

var actualText = element(by.css('label.control-label.field-required')).getText().then(function(actualText2) {
    console.log("out2    : " + actualText2);
    return expect(actualText).to.eventually.equal("hello");
});

console.log("out3    : " + actualText);

我在控制台上看到的是一个传递(它不应该传递,因为字符串不匹配),我看不到“out2”的输出,而是“out3”我的输出见:

out3    : ManagedPromise::194 {[[PromiseStatus]]: "pending"}

我看不出我做错了什么 - 希望别人可以。

1 个答案:

答案 0 :(得分:0)

错误来自下线,应该是:

return expect(actualText2).to.equal("hello");
// should use function argument `actualText2`, rather than outer variable `actualText`
// argument `actualText2` is not promise, so can't use `eventually` in assertion: `expect`

或更直接的方式:

var chai = require('chai'),
    chaiAsPromised = require('chai-as-promised'),
    expect = chai.expect;

chai.use(chaiAsPromised);

var actualText = element(by.css('label.control-label.field-required')).getText();
expect(actualText).to.eventually.equal("hello");