How can I make Selenium wait for an element before screenshot?

What method can I use in Selenium to wait for a certain element to appear before taking a screenshot?

The code that i am trying is :

The code I already have is

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();

is there another method that I can use to get the driver/page to wait for X amount of seconds?

Hi Anusha

If you want to delay a certain number of seconds, rather than to respond as soon as possible, here is a function for pause similar to what Selenium IDE offers:

public void pause(Integer milliseconds){ try { TimeUnit.MILLISECONDS.sleep(milliseconds); } catch (InterruptedException e) { e.printStackTrace(); } }

You can follow this source to get better insights : Selenium Pause in Java (WebDriver) | FRET