Geb использует статическое поле content
для определения содержимого страницы или модуля. Значение поля content
является замыканием.Добавить методы в назначенное закрытие с помощью GroovyDSL
class GebishOrgHomePage extends Page {
static content = {
manualsMenu {
module MenuModule, $("#header-content ul li", 0)
}
links { $('.link-list li a') }
}
}
Intellij уже есть поддержка этого контента DSL, однако он не поддерживает module
и moduleList
методы. Это приводит к ограниченной автозаполненной поддержке при работе с модулями.
Чтобы исправить это, я хотел бы написать сценарий GroovyDSL, который добавляет недостающие определения методов к закрытию содержимого и его вложенным закрытиям. Однако я не знаю, как добавлять методы к закрытию, которое не передается методу, так как для enclosingCall
требуется конкретное имя метода.
И другое дело, что эти методы должны иметь общий тип возвращаемого значения, как это:
<T extends Module> T module(Class<T> m) {
// return an instance of T
}
Благодарим за информацию, но есть некоторые недогрузки –
, например. ' T module (параметры карты, класс Extends Module> moduleClass, база Navigator)' –
Я объяснил, что случилось с перегрузками и что использовать вместо этого в моем ответе. – erdi