Geb 模块显示错误

Geb Modules showing an error

我正在处理一个带有一组重复 UI 元素的 geb 页面对象,一个 div 容器,里面有文本输入和按钮。

我正在尝试以下操作:

class MyModule extends Module{
  static content = {
    textInput {$("input.editTextField")}
    removeInputButton {$("button.removeButton")}
  }
}

class MyPage extends Page{
  static content = {
    myInputs { index ->
      $("div.container", index).module(MyModule)
    }
}

在 IntelliJ 中,代码在 MyPage 上突出显示("div.container, index) when I hover over this I see "'$' in 'geb.Page' cannot be applied to '(java.lang.String.?)'

我的目标是能够选择 UI 的迭代并执行类似的操作:

myInputs(0).textInput = 'foo'
myInputs(1).textInput = 'bar'
myInputs(5).removeInputButton.click()

我已经参考了 Geb 的文档,但从各方面来看这应该有效。任何帮助将不胜感激。

这会起作用,只是您的代码类型不够安全,IntelliJ 无法知道您正在调用哪个方法。如果您将内容定义更改为:

myInputs { int index ->
    $("div.container", index).module(MyModule)
}

然后警告就会消失。