Операция клика в Geb не работает - PullRequest
2 голосов
/ 10 февраля 2012

Я новичок в 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()

Но это не похоже на работу.Где я ошибаюсь?

Обновление : я временно запустил его, изменив операцию на обычную работу веб-драйвера, как это

    browser.driver.findElement(By.id('loginsubmit1')).submit()

Незнать, что не так с этой командой

browser.$("#loginsubmit1").click()

1 Ответ

0 голосов
/ 10 февраля 2012

$ () недоступно для объекта браузера, только для страницы. Этот код должен работать:

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()){ ...
...