Javascript getText()的量角器承诺
我已经好几个月没有使用量角器了,我发现自己不得不重新使用量角器。然而,我在一件非常简单的事情上失败了,我在过去工作过(甚至使用相同的代码也没有用) 我有一个包含以下html的页面:Javascript getText()的量角器承诺,javascript,protractor,Javascript,Protractor,我已经好几个月没有使用量角器了,我发现自己不得不重新使用量角器。然而,我在一件非常简单的事情上失败了,我在过去工作过(甚至使用相同的代码也没有用) 我有一个包含以下html的页面: <label class="control-label field-required" style="">The text I want</label> 我在控制台上看到的是一个过程(由于字符串不匹配,它不应该通过),我没有看到“out2”的输出,但是对于“out3”我看到: 我看不出我做错
<label class="control-label field-required" style="">The text I want</label>
我在控制台上看到的是一个过程(由于字符串不匹配,它不应该通过),我没有看到“out2
”的输出,但是对于“out3
”我看到:
我看不出我做错了什么-希望其他人能做到。错误来自下一行,应该是:
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");
这可能是在黑暗中拍摄,但在不使用
var actualText=
的情况下尝试相同的拍摄。看看你的代码是否按预期运行。谢谢你,我试过你的方式(我想),代码失败了(但这是一个不同的错误,所以我不喜欢误读它)如果我按你的方式运行,那么当文本不匹配时,我确实会失败,但是我没有得到显示预期和实际的好的错误消息-为预期返回的是“AssertionError:expected{Object(browser,then,…)}等于'Hello'”,我尝试在expected上使用toString,但它显示了一个对象-有什么想法可以澄清一下吗?您是否按照承诺使用了packagechai
?是的(至少框架配置为使用它)如何使用您最初的方式在then()中进行断言
?请检查最终使用的任何断言是否会报告断言错误:如果您故意使它们失败,则预期{Object(browser_uu,then,…)}等于
。
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");