Вы можете использовать Page load timeout. Насколько я знаю, это определенно поддерживается FirefoxDriver
и InternetExplorerDriver
, хотя я не уверен в других драйверах.
driver.manage().timeouts().pageLoadTimeout(0, TimeUnit.MILLISECONDS);
try {
driver.get("http://google.com");
} catch (TimeoutException ignored) {
// expected, ok
}
Или вы можете сделать нагрузку Неблокирующей страницы с JavaScript:
private JavascriptExecutor js;
// I like to do this right after driver is instantiated
if (driver instanceof JavascriptExecutor) {
js = (JavascriptExecutor)driver;
}
// later, in the test, instead of driver.get("http://google.com");
js.executeScript("window.location.href = 'http://google.com'");
Оба эти примеры загрузкой Google, но они возвращают контроль над экземпляром driver
обратно к вам мгновенному вместо того, чтобы ждать в целом страница для загрузки. Затем вы можете просто подождать один элемент, который вы ищете.
В случае, если вы не хотите, чтобы эта функциональность только на WebDriver#get()
, но вы хотели блокирующими click()
, тоже, вы можете сделать одно из них:
- Используйте тайм-аут загрузки страницы, как показано выше.
Использование The Advanced User Interactions API (JavaDocs)
WebElement element = driver.findElement(By.whatever("anything"));
new Actions(driver).click(element).perform();
Использование JavaScript снова:
WebElement element = driver.findElement(By.whatever("anything"));
js.executeScript("arguments[0].click()", element);