【问题标题】:How to wait indefinitely till the page loads in javascript test case如何无限期地等待页面加载到javascript测试用例中
【发布时间】:2019-02-08 10:22:51
【问题描述】:

我有一个 javascript 性能监控合成脚本。我想知道我是否可以应用一个语句来等待页面加载,因为它有很多重定向并且需要时间。

目前正在使用...

$browser.sleep(80000);

我想用无限期等待页面加载来替换它。

【问题讨论】:

    标签: javascript selenium monitoring newrelic


    【解决方案1】:

    是的,您可以在 JavaScript 的 window.onload 的帮助下无限期地检查/等待页面加载。

    试试下面的代码,它将每 2 秒检查一次,并等待页面加载完毕。一旦页面被加载,循环就会中断,否则它将无限期地运行:

    var status = false;
    window.sleep = function() { 
        return setTimeout(() => {
            console.log("=> Waited for 2 seconds...");
        }, 2000);
    }
    var getStatus = function() {
        for(var i = 0;; i++) {
            if(window.onload = function() {
                return true;
                }) {
                status = true;
                console.log(i+"). Loaded ? "+status);
                break;
            } else {
                console.log(i+"). Loaded ? "+status);
                sleep();
            }
        }
        return status;
    }
    getStatus();
    

    getStatus() 将在页面加载成功后返回 true,否则在页面加载之前不会返回任何内容。

    【讨论】:

      【解决方案2】:

      您可以为此使用 clearTimeout()。

      function timeOutFunction() {
        myTimeOut = setTimeout(function()
          { 
           $browser.sleep() }, 80000);
          }
      
      function stopTimeOutFunction() 
          {
            clearTimeout(myTimeOut);
          }
      

      stopTimeOutFunction 将覆盖 timeOutFunction 函数的功能,从而防止超时。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-11
        • 2015-08-31
        • 1970-01-01
        • 2018-09-21
        • 2020-04-02
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        相关资源
        最近更新 更多