2

我是 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()
4

1 回答 1

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()){ ...
于 2012-02-10T14:19:03.820 回答