Geb 0.13.1を使用しています。私はそれをあらゆる種類のテストフレームワーク(まだ)と統合しようとしているわけではなく、DSLのための感触を得ようとしています。私はこれを実行するとGeb EmptyNavigatorがありません
class GoogleHomepage extends Page {
static url = 'http://google.com'
static at = {
title == 'Google'
}
static content = {
search {
$('input#q')
}
}
}
class MyGebDriver {
static void main(String[] args) {
FirefoxDriver firefoxDriver = new FirefoxDriver()
Browser browser = new Browser(driver: firefoxDriver)
Browser.drive(browser) {
to(GoogleHomepage)
search.value('gmail')
quit()
}
}
}
、Firefoxの:私はちょうどゲブは、Firefoxブラウザを起動し、Googleのホームページにそれを指し、検索アドレス(「q
」のidを持つHTML <input/>
)でのGmail」を入力したいです開き、Googleになりますが、値を設定するための検索(「q
」要素)バー見つけたときにチョークようだ:ここで何が起こっているかのよう
Exception in thread "main" geb.error.RequiredPageContentNotPresent: The required page
content 'sandbox.geb.GoogleHomepage -> search: geb.navigator.EmptyNavigator' is not
present
任意のアイデア?
ありがとう@zypherman(+1) - ただし、変更しても、同じ正確な例外が発生します。 – smeeb
上記のDeonが正しいかのように見えます。 GoogleのホームページでDOMを見ると、検索入力のIDがqではないことがわかります。 idは実際には 'lst-ib'です。名前= qを使用する場合は、上記のセレクタを使用します。そうでなければ、$( "input#lst-ib")を使うことができます。 – zypherman
適切なIDを含むように上記の例を更新し、atチェッカーの方法を少し改善しました。 Gebにページが読み込まれるのを待つように指示すること、そしてあなたが必要とするすべての要素を提示することが重要です。そうしないと、完全にレンダリングされていないDOMと対話しようとします。 – zypherman