对于量角器测试,我们可以在没有 browser.wait() 函数的情况下获取 waitElement 对象值吗?
For protractor test, can we get waitElement object value without browser.wait() function?
我是量角器(和异步 javascript)的新手,但我最近几周的学习非常喜欢它。
因为我们处理的是对象,所以我试图想出一个函数,如果对象是 visible/exist,它的布尔值是 return。
部分实现如下:
function waitObject(elm, timeout) {
return browser.driver.wait(function() {
return elm.isPresent().then(function(res) {
return res;
});
}, timeout);
}
我想在这里实现两件事:
1)超时后returntrue/false
2) 当它为假时,它不会抛出超时错误,而只是抛出错误。所以,我可以继续我剩下的测试了。
只需使用 then
作为 browser.wait
return 一个根据传递给 browser.wait
的条件解决或拒绝的承诺:http://angular.github.io/protractor/#/api?view=webdriver.WebDriver.prototype.wait
waitObject(element, 1000).then(function () {
// The condition resolved truthy, element is present
}, function () {
// Timed out
});
这样你就可以根据条件是否超时做不同的事情。
我认为不 return 函数的承诺会很棘手。因为在 Protractor 中所做的一切都是异步发生的。
我是量角器(和异步 javascript)的新手,但我最近几周的学习非常喜欢它。
因为我们处理的是对象,所以我试图想出一个函数,如果对象是 visible/exist,它的布尔值是 return。
部分实现如下:
function waitObject(elm, timeout) {
return browser.driver.wait(function() {
return elm.isPresent().then(function(res) {
return res;
});
}, timeout);
}
我想在这里实现两件事:
1)超时后returntrue/false
2) 当它为假时,它不会抛出超时错误,而只是抛出错误。所以,我可以继续我剩下的测试了。
只需使用 then
作为 browser.wait
return 一个根据传递给 browser.wait
的条件解决或拒绝的承诺:http://angular.github.io/protractor/#/api?view=webdriver.WebDriver.prototype.wait
waitObject(element, 1000).then(function () {
// The condition resolved truthy, element is present
}, function () {
// Timed out
});
这样你就可以根据条件是否超时做不同的事情。
我认为不 return 函数的承诺会很棘手。因为在 Protractor 中所做的一切都是异步发生的。