如何等待一段时间使用硒webdriver加载页面?
答
请试试这个。
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.google.com");
答
配置驱动程序,以等待页面加载隐式。
隐含的等待是为了告诉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秒),按您的要求。
参考:
的可能的复制[硒C#的webdriver:等到元素存在(http://*.com/questions/6992993/selenium-c-sharp -webdriver - 等待 - 直到 - 元素是当前) –