首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待,直到满足条件Selenium-Webdriver

等待,直到满足条件Selenium-Webdriver
EN

Stack Overflow用户
提问于 2016-03-02 22:18:40
回答 1查看 1.6K关注 0票数 2

我正在尝试在selenium-webdriver条件之上创建额外的条件。我仍然在努力掌握promises和callbacks的完整概念。多亏了堆栈溢出的帮助,我的性能有了很大的提高。我不确定如何在javascript中每隔这么多秒重复一次条件。我的遗产也可能是错的。

代码语言: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函数中,我是否会执行如下操作

代码语言:javascript
复制
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;
            }
        }
    });
});
EN

回答 1

Stack Overflow用户

发布于 2017-05-27 01:03:58

您可以使用接受任何JS函数的wait来创建自定义条件。下面是一个检查angular何时准备就绪的示例。

代码语言:javascript
复制
// 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(...);

等待类型定义

代码语言:javascript
复制
wait<T>(condition: promise.Promise<T> | until.Condition<T> | ((driver: WebDriver) => T) | Function, timeout?: number, opt_message?: string): promise.Promise<T>;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35749757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档