我正在尝试在selenium-webdriver条件之上创建额外的条件。我仍然在努力掌握promises和callbacks的完整概念。多亏了堆栈溢出的帮助,我的性能有了很大的提高。我不确定如何在javascript中每隔这么多秒重复一次条件。我的遗产也可能是错的。
var WebElementCondition = require('./selenium-webdriver/lib/until');
var ExpectedConditions = function()
{
this.waitForWindowWithTitle = function (title)
{
return driver.getAllWindowHandles().then(function (title, handles) {
console.log(handles.length + ' .then function');
for (var window in handles) {
if (window.title === title)
{
return true;
}
else
{
return false;
}
}
});
}
}
module.exports = ExpectedConditions;
require('util').inherits(module.exports, WebElementCondition);在waitForWindowWithTitle函数中,我是否会执行如下操作
return driver.wait(10000).then(function() {
driver.getAllWindowHandles().then(function (title, handles) {
console.log(handles.length + ' .then function');
for (var window in handles) {
if (window.title === title)
{
return true;
}
else
{
return false;
}
}
});
});发布于 2017-05-27 01:03:58
您可以使用接受任何JS函数的wait来创建自定义条件。下面是一个检查angular何时准备就绪的示例。
// Wait for Angular to Finish
function angularReady(): any {
return $browser.executeScript("return (window.angular !== undefined) && (angular.element(document).injector() !== undefined) && (angular.element(document).injector().get('$http').pendingRequests.length === 0)")
.then(function(angularIsReady) {
return angularIsReady === true;
});
}
$browser.wait(angularReady, 5000).then(...);等待类型定义
wait<T>(condition: promise.Promise<T> | until.Condition<T> | ((driver: WebDriver) => T) | Function, timeout?: number, opt_message?: string): promise.Promise<T>;https://stackoverflow.com/questions/35749757
复制相似问题