java - 让 Selenium 暂停 X 秒

标签 java selenium selenium-webdriver

我想要完成的是浏览到一个页面,等待加载某些内容,然后拍摄并保存屏幕截图。

我已经有的代码是

WebDriver driver = new FirefoxDriver();


driver.get("http://www.site.com");


driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

try {

    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(scrFile, new File("/home/Desktop/image.png"));

} catch (Exception e) { 

       e.printStackTrace(); 
}

driver.close();

我需要等待的原因,即使页面已加载是因为它会被加载,但在网站上我想拍照的内容会在几秒钟后加载。出于某种原因,页面没有等待,是否可以使用另一种方法让驱动程序/页面等待 X 秒?

最佳答案

您可以找到在初始页面加载后加载的元素,然后让 Selenium 等待直到找到该元素。

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ID")));

关于java - 让 Selenium 暂停 X 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20009211/

相关文章:

scala selenium dsl 页面对象

python - Selenium 中的 NoSuchFrameException(frame_reference)

java - Hibernate 的轻量级替代品?

java - 无法为连接 URL '' 创建类 'null' 的 JDBC 驱动程序

java - 如何使用 WebDriver 获取任何 Web 应用程序前端数据的加载时间?

java - java和selenium中像人类一样的鼠标滚动

java - 如何在不使用 autoIt 和机器人类的情况下使用 selenium webdriver 处理 IE 下载弹出窗口

具有列表映射的 Java 并发性

java - 在 JSP 和 Servlet 中使用对象

selenium - 哪个 Selenium 独立版本与 Firefox 版本 ESR 52.6.0 兼容