Take screenshot with Selenium: WaitForPageToLoad does not wait long enough

Posted by OregonGhost on Stack Overflow See other posts from Stack Overflow or by OregonGhost
Published on 2010-07-12T15:55:03Z Indexed on 2011/01/17 1:53 UTC
Read the original article Hit count: 484

Filed under:
|

I'm trying to get screenshots from a web page with multiple browsers. Just experimenting with Selenium RC, I wrote code like this:

var sel = new DefaultSelenium(server, 4444, target, url);
sel.Start();
sel.Open(url);
sel.WaitForPageToLoad("30000");
var imageString = sel.CaptureScreenshotToString();

This basically works, but in most cases the screenshot is of a blank browser window, because the page is not yet ready for display. It kind of works if I add a sleep just after the WaitForPageToLoad, but that slows down the fast browsers and/or may be to short for the slower browsers (or under load).

A typical solution for this seems to be to wait for the presence of a certain element. However, this is meant as a simple generic solution to get a screenshot of a local web page with as many browsers as possible (to test the layout) and I don't want to have to enter certain element names or whatever. It's a simple tool where you just enter the Selenium Server URL and the URL you want to test, and get the screenshots back.

Any advice?

© Stack Overflow or respective owner

Related posts about selenium

Related posts about selenium-rc