У меня есть страница (StartPage) со ссылками на несколько книг, и я хотел бы создать общий метод или определение содержимого, которое щелкает ссылку с определенным заголовком и переходит на эту страницу. Все страницы книги имеют static String TITLE
, определяющий название книги. Я хочу сделать что-то вроде этого (StartPage):
def <T extends Page> T openBook(Class<T> pageType) {
$(".product h3", text: pageType.TITLE).parents("a").click()
browser.to(pageType)
browser.page as T
}
Однако это не работает, поскольку, когда я перехожу к pageType
(используя browser.to(pageType)
), кажется, что Геб перенаправляет меня на страницу входа вместо запрошенного pageType
(может быть, потому что, когда я вызываю to
, сеанс сбрасывается?).
Если я реорганизую метод и жестко закодирую все в определение контента:
static content = {
openMyBook(to: MyBookPage) { $(".product h3", text: "My Book Title").parents("a")}
}
он работает, просто вызывая openMyBook
, но, как вы можете видеть, страница книги (MyBookPage
) и text
жестко закодированы.
Итак, мой вопрос в основном заключается в том, могу ли я передать аргументы определению контента (openMyBook
) или изменить метод openBook
для перехода на страницу книги без потери сеанса.