我是 Node.js 的初学者。 我 promise 从服务器下载文件,然后将其解析为 json 对象并返回。 另一个 promise 返回一个网页元素()。 这两个 promise 必须一个接一个地解决:第一个返回 json 对象的 promise ,这个工作很好, 然后是获取页面元素的 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();
});
});
});
使用此代码 Protractor 返回:1 个测试,0 个断言,0 个失败 这是为什么?我做错了什么?
注意:两个控制台命令都执行
最佳答案
您需要将jsonPromise
放在protractor
的Control Flow 上:
browser.controlFlow().await(jsonPromise).then(function (data) {
expect(menuItems.first().getText()).toEqual(data.home);
});
关于javascript - 我如何在 Protractor 测试中解决两个不同的 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30253112/