我是geb的新手,我有一个像这样的表单的页面
<form id="loginfrm1" action="http://google.co.uk">
<input id="loginsubmit1" type="submit" value="sumit me" />
</form>
我想点击提交按钮,我正在使用
browser = new Browser()
browser.setDriver(new FirefoxDriver())
browser.go("http://localhost:8080")
browser.$("#loginsubmit1").click()
但它似乎不起作用。我哪里错了?
更新:我暂时通过将操作更改为正常的webdriver操作来实现它,就像这样
browser.driver.findElement(By.id('loginsubmit1')).submit()
我不知道这个命令有什么问题
browser.$("#loginsubmit1").click()
答案 0 :(得分:0)
$()在浏览器对象上不可用,只在页面上可用。这段代码应该有效:
browser = new Browser()
browser.setDriver(new FirefoxDriver())
browser.go("http://localhost:8080")
browser.$("#loginsubmit1").page.click()
您还应该考虑使用Browser.drive方法。对于你想要的,它看起来像这样:
Browser.drive(baseUrl: "http://localhost:8080"){
go()
$("#loginsubmit1").click()
}
它的工作原理是因为drive()创建了一个新的浏览器对象并委托给它和browser.page,因此可以直接调用它们所拥有的任何方法和属性。您不需要指定FirefoxDriver,因为这是默认值,但是如果您确实要指定它,则可以这样做:
Browser.drive(baseUrl: "http://localhost:8080",
driver: new FirefoxDriver()){ ...