Everything that we have looked at so far has been a synchronous piece of JavaScript. However, what if we wanted to perform some asynchronous JavaScript calls as a part of our test? Well, we can do this. The JavascriptExecutor also has a method called executeAsyncScript(). This will allow you to run some JavaScript that does not respond instantly. Let's have a look at some examples.
First of all, we are going to write a very simple bit of JavaScript that will wait for 25 seconds before triggering a callback, as follows:
@Test
private void javascriptExample() {
driver.manage().timeouts().setScriptTimeout(60,
TimeUnit.SECONDS);
driver.executeAsyncScript("var callback =
arguments[arguments.length - 1];
window.setTimeout(callback, 25000);");
driver.get("http://www.google.com");
}
Note that we defined a JavaScript...