Geo*_*mov 8 javascript chai protractor cucumberjs
我对cucumberjs有疑问.我找不到一种方法来确保将具有给定选择器的元素呈现到DOM中.我和Chai一起使用cucjs. https://github.com/cucumber/cucumber-js isPresent返回对象 - 无论元素是否存在.所以问题是如何检查DOM中是否存在元素.
我将编辑问题以分享一个学到的课程.我阅读文档也想感谢Nathan Thompson.isPresent()返回一个promise,该promise将解析该元素是否存在于页面上.
http://angular.github.io/protractor/#/api?view=Protractor.prototype.isElementPresent
代码示例有点误导.因此,如果您希望在DOM中存在具有给定选择器的元素,则必须使用以下内容:
element(by.id('someId')).isPresent().then(function(isElementVisible) {
expect(isElementVisible).to.be.true;
});
Run Code Online (Sandbox Code Playgroud)
或者使用带有承诺的柴.
expect(element.isPresent()).to.eventually.be.false
Run Code Online (Sandbox Code Playgroud)
然而,"最终"这个词听起来很不愉快.我们希望确保最终不确定.:)
在这里可以看到关于这个问题的文章到我的个人博客中.
Nat*_*son 10
Protractor中的几乎所有函数都会返回将会解析为您实际要测试的值的promise.因此,如果您只是尝试执行以下操作,它将始终失败,因为它在由isPresent以下方式返回的promise对象上断言:
expect(element.isPresent()).to.be.false
Run Code Online (Sandbox Code Playgroud)
我建议使用chai-as-promised插件来处理Chai这样的情况.它提供的eventually链将解决您的承诺并对结果值进行断言.上面的例子如下所示:
expect(element.isPresent()).to.eventually.be.false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5645 次 |
| 最近记录: |