我需要等待一段时间,因为页面需要时间来加载。我需要暗中等待。如何使用selenium webdriver java来完成它?
答案 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秒)。
参考: