2016-11-11 97 views
0

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

+0

的可能的复制[硒C#的webdriver:等到元素存在(http://stackoverflow.com/questions/6992993/selenium-c-sharp -webdriver - 等待 - 直到 - 元素是当前) –

回答

0

请试试这个。

WebDriver driver = new FirefoxDriver(); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
driver.get("http://www.google.com"); 
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. 

此等待长达10秒投掷一个TimeoutException之前或如果它发现该元件将在0返回它 - 10秒。 WebDriverWait默认每500毫秒调用一次ExpectedCondition,直到它成功返回。 ExpectedCondition函数类型的成功返回值是布尔值true或非空对象。

注:配置超时(在本例中是10秒),按您的要求。

参考:

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