2016-11-11 61 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
相關問題