一旦使用selenium webdriver加载页面,如何等待一段时间?

时间:2016-11-11 06:40:03

标签: java selenium-webdriver automation wait

我需要等待一段时间,因为页面需要时间来加载。我需要暗中等待。如何使用selenium webdriver java来完成它?

2 个答案:

答案 0 :(得分:0)

请试一试。

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.google.com");

答案 1 :(得分:0)

配置驱动程序以等待页面隐式加载。

隐式等待是告诉WebDriver在尝试查找一个或多个元素(如果它们不是立即可用)时轮询DOM一段时间。默认设置为0.设置后,将为WebDriver对象实例的生命周期设置隐式等待。

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //makes driver object to wait for 10 seconds to wait implicitly
driver.get("http://somedomain/url_that_delays_loading");

或者您可以定义ExplicitCondition以等待某个事件发生,从而确认页面加载。

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("someid"))); // give an element locator, such a way that you can confirm that visibility of that elements represents the complete loading of the page.
  

在抛出TimeoutException之前等待最多10秒,或者如果它发现元素将在0-10秒内返回它。默认情况下,WebDriverWait每500毫秒调用一次ExpectedCondition,直到它成功返回。 ExpectedCondition函数类型的成功返回值是布尔值true或非null对象。

注意:根据您的要求配置超时(在示例中为10秒)。

参考:

  1. http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp