无法单击 Geb/Groovy 中的 Button 元素
not able to click Button element in Geb/Groovy
非常类似于
按钮在网页中定义为:
<button class="gigantic-long-string-gwtui-etc"
type="button" style="width: 60px" tabIndex="200">OK</button>
我正在使用 Geb。我定义按钮如下:
systemUseNotification (wait:true) { $("button", text:"OK") }
并尝试点击按钮:
waitFor(60) {systemUseNotification.click()}
代码能够找到按钮,但 click() 从未起作用。我不得不使用一种奇怪的解决方法将 ENTER 键发送到按钮
systemUseNotification << Keys.chord(Keys.ENTER))
代码能找到但不能点击的其他控件由
定义
templateTab(wait:true) { $("td" , text:"Templates")}
这是一个 table 单元格,单击它会更改视图。
同样,在此 templateTab 上调用 click() 没有做任何事情。这甚至用 waitFor
环绕它,并验证代码找到了控件。
HTML中的实际定义是<td class="main-menu-item-text">Templates<td>
做了什么工作是$(class:'main-menu-item-text', text:"Templates").click()
但我真的不喜欢必须指定 class 名称,因为它违背了具有抗更改测试代码的目的。
同样的问题,我试图点击定义为
的 div 控制按钮
我想调用 use 类似的东西:
$("div", title:"Switch Dashboards").click()
但这也不管用。
请告诉我我做错了什么。
我发现以下技术有效:
waitFor {$("td", class:contains("text"), text:"Templates").click()}
尽管如此,我仍然希望避免了解有关 class 的任何信息,但这至少减少了我必须匹配的字符串的大小。
我尝试过,例如 class:contains(~/.*/)
和 class:~/.*/
,这样我就可以成为 "class-agnostic",但这些总是导致陈旧。
非常类似于
按钮在网页中定义为:
<button class="gigantic-long-string-gwtui-etc"
type="button" style="width: 60px" tabIndex="200">OK</button>
我正在使用 Geb。我定义按钮如下:
systemUseNotification (wait:true) { $("button", text:"OK") }
并尝试点击按钮:
waitFor(60) {systemUseNotification.click()}
代码能够找到按钮,但 click() 从未起作用。我不得不使用一种奇怪的解决方法将 ENTER 键发送到按钮
systemUseNotification << Keys.chord(Keys.ENTER))
代码能找到但不能点击的其他控件由
定义templateTab(wait:true) { $("td" , text:"Templates")}
这是一个 table 单元格,单击它会更改视图。
同样,在此 templateTab 上调用 click() 没有做任何事情。这甚至用 waitFor
环绕它,并验证代码找到了控件。
HTML中的实际定义是<td class="main-menu-item-text">Templates<td>
做了什么工作是$(class:'main-menu-item-text', text:"Templates").click()
但我真的不喜欢必须指定 class 名称,因为它违背了具有抗更改测试代码的目的。
同样的问题,我试图点击定义为
的 div 控制按钮我想调用 use 类似的东西:
$("div", title:"Switch Dashboards").click()
但这也不管用。
请告诉我我做错了什么。
我发现以下技术有效:
waitFor {$("td", class:contains("text"), text:"Templates").click()}
尽管如此,我仍然希望避免了解有关 class 的任何信息,但这至少减少了我必须匹配的字符串的大小。
我尝试过,例如 class:contains(~/.*/)
和 class:~/.*/
,这样我就可以成为 "class-agnostic",但这些总是导致陈旧。