我好几个月没有使用量角器,发现自己不得不回去了。然而,我失败了一个我过去曾经工作过的非常简单的事情(甚至使用相同的代码也无济于事。)
我有一个包含以下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"}
我看不出我做错了什么 - 希望别人可以。
答案 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");