Set capability on already running selenium webdriver

前端 未结 2 847
野趣味
野趣味 2020-12-03 22:33

In selenium test step (like a button click) i want to prevent the selenium waiting for page finish loading. I cant throw the load Exception because then i cant work with the

2条回答
  •  执笔经年
    2020-12-03 23:30

    Capabilities are no longer editable once the browser is launched. One way to temporary disable the waiting is to implement your own get with a script injection.

    Something like this:

    // 
    // loads the page and stops the loading without exception after 2 sec if 
    // the page is still loading.
    //
    
    load(driver, "https://httpbin.org/delay/10", 2000); 
    
    public static void load(WebDriver driver, String url, int timeout) {
      ((JavascriptExecutor)driver).executeScript(
        "var url = arguments[0], timeout = arguments[1];"
        "window.setTimeout(function(){window.location.href = url}, 1);" +
        "var timer = window.setTimeout(window.stop, timeout);" +
        "window.onload = function(){window.clearTimeout(timer)}; "
        , url, timeout);
    }
    

提交回复
热议问题