ゲンゾウ用ポストイット

Java、Groovy、Linux関連の備忘録

Gebを試してみる

関西Javaエンジニアの会id:kiy0takaさんが話されていたGebを試してみた。
その場で理解した限りでは、GroovyなSelenium的FW。

早速試してみる

404 NOT_FOUND にもあるとおり、インストールは不要。なぜならGroovyにはGrabがあるからね!だって。

以下のコードをスクリプト先頭に記述すればOKとのこと。

@Grapes([
    @Grab("org.codehaus.geb:geb-core:latest.release"),
    @Grab("org.seleniumhq.selenium:selenium-firefox-driver:latest.release")
])
import geb.Browser

ということで以下のサンプルコードと組み合わせてスクリプトを作成し、実行。
404 NOT_FOUND

サンプルコード(GebExample.groovy)
#!/usr/bin/env groovy
@Grapes([
    @Grab("org.codehaus.geb:geb-core:latest.release"),
    @Grab("org.seleniumhq.selenium:selenium-firefox-driver:latest.release")
])
import geb.Browser
 
Browser.drive("http://google.com/ncr") {
    assert title == "Google"
 
    // enter wikipedia into the search field
    $("input", name: "q").value("wikipedia")
 
    // wait for the change to results page to happen
    // (google updates the page without a new request)
    waitFor { title.endsWith("Google Search") }
 
    // is the first link to wikipedia?
    def firstLink = $("li.g", 0).find("a.l")
    assert firstLink.text() == "Wikipedia"
 
    // click the link
    firstLink.click()
 
    // wait for Google's javascript to redirect
    // us to Wikipedia
    waitFor { title == "Wikipedia" }
}

結果はエラー。
いきなり落胆。

Caught: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "javax/xml/namespace/NamespaceContext"
at geb.driver.PropertyBasedDriverFactory.getDriver(PropertyBasedDriverFactory.groovy:63)
at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:36)
at geb.Browser.getDefaultDriver(Browser.groovy:61)
at geb.Browser.<init>(Browser.groovy:48)
at geb.Browser.<init>(Browser.groovy)
at geb.Browser.<init>(Browser.groovy:44)
at geb.Browser.<init>(Browser.groovy)
at geb.Browser.drive(Browser.groovy:239)
at GebExamples.run(GebExamples.groovy:8)

ちなみに以下は僕のPC環境。

$ uname -a
> Linux genzou-desktop 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux

$ groovy -version
Groovy Version: 1.8.0 JVM: 1.6.0_24


時間見つけて調べてみる。

広告を非表示にする