GroovyとSeleniumでスクリーンショットをとってみる

(日本語がおかしかったので修正)

以下のGroovyスクリプトを実行すると指定しているページを開いてスクリーンショットを作ります。
※初回実行時はかなりの量のjarをダウンロードするので時間がかかります!注意!!

import junit.framework.TestCase
import org.openqa.selenium.server.SeleniumServer
import com.thoughtworks.selenium.DefaultSelenium
import com.thoughtworks.selenium.Selenium

@Grab(group='org.codehaus.mojo', module='selenium-maven-plugin', version='1.0')
public class SeleniumScreenShotTest extends TestCase {
    
    private SeleniumServer seleniumServer
    protected Selenium selenium
    
    protected void setUp() throws Exception {
        seleniumServer = new SeleniumServer()
        seleniumServer.start()
        selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.cloudtesting.com/")
        selenium.start()
    }
    protected void tearDown() throws Exception {
        selenium.stop()
        seleniumServer.stop()
    }

    public void testRun() {
        selenium.open("http://www.cloudtesting.com/blog/2009/06/24/capturing-screen-shots-of-browsers-with-selenium-and-cloud-testing-part-1/")
        selenium.captureEntirePageScreenshot("C://screenshot.png","")
    }
}

■スクリプト内でやっていること


1.Selenium Maven Pluginを使って@Grabでjarをダウンロードする
http://mojo.codehaus.org/selenium-maven-plugin/

2.Selenium Serverを起動

3.テストを走らせてスクリーンショットを作成

4.Selenium Serverを停止



あとGroovySeleneseTestCaseにはsetCaptureScreenshotOnFailure(boolean)みたいなメソッドもある。これは重宝しそう。



■参考サイト
Page not found - Cloud Testing Blog
cargo + Selenium RCでintegration test - まとばと!