Gebを試してみる(再再々)
Gebを試してみる(再々) | ページ 1306273892 | ゲンゾウ用ポストイット の続き。
またまた kiy0taka さんがコメントをくれていた。
#!/usr/bin/env groovy
@GrabConfig(systemClassLoader = true)
@Grapes([
@Grab("org.codehaus.geb:geb-core:latest.release"),
@Grab('org.seleniumhq.selenium:selenium-chrome-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: org.openqa.selenium.WebDriverException: Couldn't locate Chrome. Set webdriver.chrome.bin
System info: os.name: 'Linux', os.arch: 'i386', os.version: '2.6.38-8-generic', java.version: '1.6.0_24'
Driver info: driver.version: ChromeDriver
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)
手応えを感じる。今までみなかったエラー。
webdriver.chrome.bin を設定しなさいとのこと。
なるほど。Chromeインストールしてないのとその実行パスが設定されていないのが原因ぽい。
Linux向けのChromeをインストールする。
$ 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
$ sudo apt-get install chromium-browser
$ which chromium-browser
/usr/bin/chromium-browser
$ groovy -Dwebdriver.chrome.bin=/usr/bin/chromium-browser ./GebExamples.groovy
とすることで、 ようやくGebが動くようになりました!id:nobusue さん、 kiy0taka さん、参考情報をありがとうございます。
・・・firefoxは動いてないんだけどね。
ディスカッション
コメント一覧
Grabの順番が逆なってますね。
@GrabConfig(systemClassLoader=true)
@Grapes([
@Grab("org.codehaus.geb:geb-core:latest.release"),
@Grab('org.seleniumhq.selenium:selenium-chrome-driver:latest.release')
])
でいけるかと。GrabConfigはなくてもいいかも。
毎度ありがとうございます。
Grabも、記述順序に意味があったんですね。知らなかったです。