我如何在量角器测试中解决两个不同的承诺?
How can i resolve two distinct promises in a protractor test?
我是Node.js的初学者。我有一个承诺,从服务器下载一个文件,然后解析成json对象,并返回它。另一个承诺返回一个网页元素()。这两个承诺必须一个接一个地解决:首先是返回json对象的承诺,这个工作很好,然后是获取page元素的promise。使用json对象中的一个键,我必须测试元素是否包含相同的文本。
代码:var menuItems = element(by.id('menu')).all(by.tagName('li'));
it('should contain', function (done) {
jsonPromise.then(function () { // work
console.log('Inside jsonPromise then');
menuItems.then(function () { //------> not step into
console.log('Inside menuItems then');
expect(menuItems.get(0).getText()).toEqual(jsonData.home);
done();
});
});
});
用这段代码量角器返回:1个测试,0个断言,0个失败为什么呢?我做错了什么?
注意:两个控制台命令都执行
您需要将jsonPromise
置于protractor
的控制流:
browser.controlFlow().await(jsonPromise).then(function (data) {
expect(menuItems.first().getText()).toEqual(data.home);
});
与protractor 2.0.0 webbelements element
不返回一个Promise
应该可以
menuItems = element(by.id('menu')).all(by.tagName('li'));
describe('my tests', function(){
it('should contain', function(done) {
jsonPromise.then(function(jsonData) {
console.log('Inside jsonPromise then');
expect(menuItems.get(0).getText()).toEqual(jsonData.home);
})
.then(done)
.catch(done);
// if using jasmine2 it will be .catch(done.fail)
});
});
相关文章:
- JQuery合并了keyup和focusout两个函数
- 如何使用 node.js 比较两个 json 数组
- 为复选框javascript指定两个值
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 两个函数之间的角度承诺
- 如何在两个连续的角度服务呼叫期间中止/取消第一个呼叫的承诺
- 用Angularjs返回两个承诺,How To Chain So UI有$scope
- 编写一个使用传递两个参数的回调的承诺
- 在节点中,使用Q,使两个函数并行工作,但只等待第一个函数实现其承诺
- 如何同时运行两个承诺并在nodejs中一个接一个地失败
- 两个捕获的承诺/块声明都没有执行
- 处理两个已解决的承诺
- 如何在Angularjs中同步两个$interval承诺?
- 如何触发两个承诺并有条件地等待一个
- 结合两个承诺
- 如何在链接两个异步jQuery函数时完全避开jQuery承诺
- 链接承诺执行两个操作
- 取决于两个承诺
- 通过两个服务连接一个承诺
- 我如何在量角器测试中解决两个不同的承诺?