一尘不染

让selenium暂停X秒

selenium

我要完成的工作是浏览页面,等待加载内容,然后获取并保存屏幕截图。

我已经拥有的代码是

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秒钟?


阅读 868

收藏
2020-06-26

共1个答案

一尘不染

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

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