无法单击Geb / Groovy中的Button元素

时间:2017-06-19 13:19:09

标签: button groovy click geb

Not able to click Button(element) on Selenium webdriver非常相似

该按钮在网页中定义为:

systemUseNotification (wait:true) { $("button", text:"OK") }

我使用Geb.我按如下方式定义了按钮:

waitFor(60) {systemUseNotification.click()}

并尝试点击按钮:

systemUseNotification << Keys.chord(Keys.ENTER))

代码能够找到按钮,但是click()从未工作过。我不得不使用奇怪的工作方式将ENTER键发送到按钮

templateTab(wait:true) { $("td" , text:"Templates")}

代码可以找到但不是点击的另一个控件由

定义
waitFor

这是一个表单元格,可在您单击时更改视图。 再一次,在这个templateTab上调用click()没有做任何事情。这甚至是<td class="main-menu-item-text">Templates<td>缠绕它,并验证代码找到了控件。

HTML中的实际定义是$(class:'main-menu-item-text', text:"Templates").click()

工作的内容是$("div", title:"Switch Dashboards").click()

但我真的不喜欢指定类名,因为它违背了具有抗更改测试代码的目的。

同样的问题我试图点击定义为

的div控制按钮  

我想打电话使用类似的东西: class UserDecorator < SimpleDelegator def full_name "#{first_name} #{last_name}" end end > @user = UserDecorator.new(User.new(first_name: 'John', last_name: 'Doe')) > @user.full_name => "John Doe" 但这也不起作用。
请告诉我我做错了什么。

1 个答案:

答案 0 :(得分:1)

我发现以下技术有效:

waitFor {$("td", class:contains("text"), text:"Templates").click()}

尽管如此,我仍然希望避免对该类有所了解,但至少这减少了我必须匹配的字符串的大小。

我试过了,例如class:contains(~/.*/)class:~/.*/,所以我可以&#34;类不可知&#34;,但那些总是导致陈旧。