在这里使用Geb 0.13.1。我并没有尝试将它与任何类型的测试框架集成(只是),只是试图了解它的DSL。我只是想让Geb推出一个Firefox浏览器,将其指向Google的主页,然后输入“gmail&#39;在搜索地址(ID为<input/>
且ID为&{39; q
&#39;):
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,但在找到搜索(&#39; q
&#39;元素)栏以设置值时,似乎会窒息:
Exception in thread "main" geb.error.RequiredPageContentNotPresent: The required page
content 'sandbox.geb.GoogleHomepage -> search: geb.navigator.EmptyNavigator' is not
present
关于这里发生了什么的任何想法?
答案 0 :(得分:2)
您正在获取EmptyNavigator,因为您正在寻找ID为q $的输入(&#39;输入#q&#39;)尝试$(&#39;输入[name = q]&#39;)而不是。
答案 1 :(得分:1)
您的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') }
}
}