Gebを試してみる(引き続き)

2019-09-18Groovy

Gebを試してみる の続き。

いろいろ試してみました。まずは id:nobusue さんが教えてくれたヒントを元に攻めてみます。

@GrabConfigで解決できませんかね。

http://groovy.codehaus.org/api/groovy/lang/GrabConfig.html
(from @nobusue)

code>@GrabConfig でサンプルソースで設定されていることが多い systemClassLoader を設定してみます。

@GrabConfig(systemClassLoader = true)
@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" }
}

結果、やはりエラーは変わらずでした。

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:9)

もしかすると Groovy 1.8.0 が問題かもと思ったので、自分の環境にセットアップされている Groovy 1.7.6 を利用してみるもやはり同じ。

さては参照するリポジトリか?と思い以下を設定してみてもやはりダメ。

@GrabConfig(systemClassLoader = true)
@GrabResolver(name = "codehaus", root = "http://snapshots.repository.codehaus.org/")
@Grapes([
        @Grab("org.codehaus.geb:geb-core:latest.release"),
        @Grab("org.seleniumhq.selenium:selenium-firefox-driver:latest.release")
])
import geb.Browser
...

ということで、次回のGroovy読書会関西支部の際に id:kiy0taka さんに教えてもらうことにしようと思います。