Nicolas Hoizey asked me if it was possible to take screenshots with Opera. We released last year a way to do test automation with Opera. It means you can use Opera with a driver that will automate the Web navigation. So I asked people working on Opera Watir what should be done for taking the screenshot of a page.
Using Webdriver (Java)
Using the java OperaDriver, there is a testcase giving an example of code.
@Test
@Ignore(value="Opera problem. Areas outside current viewport are black.")
public void testFullScreenshot() throws Exception {
getFixture("tall.html");
File file = driver.getScreenshotAs(OutputType.FILE);
BufferedImage img = ImageIO.read(file);
Assert.assertEquals(5100, img.getHeight());
// Make sure the bottom colour is green, not black.
int botcol = img.getRGB(0, 5050);
Assert.assertEquals(0xFF00, botcol & 0xFF00);
}
Using OperaWatir (Ruby)
You may want to use
OperaWatir
for testing the page. You can for example get the body
element and
save it as a screenshot.
require 'rubygems'
require 'operawatir'
browser = OperaWatir::Browser.new
browser.goto 'http://www.opera.com/'
browser.element(:tag_name, 'body').screenshot('~foo/path/myscreenshot.png')
browser.quit
Note: There is a known bug currently in Opera which creates a black border for the areas outside the current viewport.
Note 2: I have been told it will be a lot easier in future versions.
PS: I may have made mistakes I will fix them if any.