Geb EmptyNavigator 不存在
Geb EmptyNavigator is not present
这里使用 Geb 0.13.1。我还没有尝试将它与任何类型的测试框架集成(目前),只是想感受一下它的 DSL。我只是想让 Geb 启动一个 Firefox 浏览器,将它指向 Google 的主页,然后在搜索地址中输入 'gmail'(HTML <input/>
,id 为 'q
'):
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 打开并转到 Google,但在找到搜索('q
' 元素)栏以设置一个值时似乎窒息:
Exception in thread "main" geb.error.RequiredPageContentNotPresent: The required page
content 'sandbox.geb.GoogleHomepage -> search: geb.navigator.EmptyNavigator' is not
present
关于这里发生的事情有什么想法吗?
我觉得你的 GoogleHomepage 有点傻。
如果你让它看起来更像这样更好地遵循 geb dsl 会怎么样。
class GoogleHomepage extends Page {
url = 'http://google.com'
static at = {
waitFor() {
title == 'Google'
content
}
}
static content = {
search(required: true) { $('input#lst-ib') }
}
}
您得到一个 EmptyNavigator 是因为您正在寻找 ID 为 q $('input#q') 的输入,请尝试 $('input[name=q]')。
这里使用 Geb 0.13.1。我还没有尝试将它与任何类型的测试框架集成(目前),只是想感受一下它的 DSL。我只是想让 Geb 启动一个 Firefox 浏览器,将它指向 Google 的主页,然后在搜索地址中输入 'gmail'(HTML <input/>
,id 为 'q
'):
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 打开并转到 Google,但在找到搜索('q
' 元素)栏以设置一个值时似乎窒息:
Exception in thread "main" geb.error.RequiredPageContentNotPresent: The required page
content 'sandbox.geb.GoogleHomepage -> search: geb.navigator.EmptyNavigator' is not
present
关于这里发生的事情有什么想法吗?
我觉得你的 GoogleHomepage 有点傻。 如果你让它看起来更像这样更好地遵循 geb dsl 会怎么样。
class GoogleHomepage extends Page {
url = 'http://google.com'
static at = {
waitFor() {
title == 'Google'
content
}
}
static content = {
search(required: true) { $('input#lst-ib') }
}
}
您得到一个 EmptyNavigator 是因为您正在寻找 ID 为 q $('input#q') 的输入,请尝试 $('input[name=q]')。