Cucumber 等待\u,而\u不在等待并单击下一个元素

Cucumber 等待\u,而\u不在等待并单击下一个元素,cucumber,watir-webdriver,page-object-gem,Cucumber,Watir Webdriver,Page Object Gem,在我的钩子里 Before do @browser = Watir::Browser.new :chrome, :switches => %w[--ignore-certificate-errors --test-type --disable-web-security --disable-extensions] end 在我的账户主页上,我有: class AccountHome include PageObject button(:billtransfers, :i

在我的钩子里

Before do
    @browser = Watir::Browser.new :chrome, :switches => %w[--ignore-certificate-errors --test-type --disable-web-security --disable-extensions]
end
在我的账户主页上,我有:

class AccountHome

  include PageObject

  button(:billtransfers, :id => 'nav_transfersPayments')

end
我试图等到div消失后再单击元素:

When(/^the user navigates to Bills & Transfers \/ Vendors$/) do
  @browser.div(:id => 'spinner').wait_while_present
  on(AccountHome).billtransfers_element.when_present.billtransfers
  on(AccountHome).vendors
  sleep 5
end 
但我一直得到以下错误:

Element is not clickable at point (95, 254). Other element would receive the click: <div id="spinner" class="screenMask">...</div>
我收到一条错误消息,说明billtransfers不是一种方法。我参考了这份文件


所以总的来说,我只想等到div消失,然后单击按钮。但是1。它不会在出现时等待,也不会在出现时单击按钮。

当出现时
返回元素,这就是为什么
billtransfers
方法不存在的原因。wiki页面错误或已过期。它应该位于(AccountHome)上的
。billtransfers\u元素。当\u出现时。单击
。至于它为什么没有等待,我可能猜Watir检查微调器是否不存在,然后微调器被渲染,然后Watir尝试单击。可能导致微调器出现的操作需要等待微调器出现。但是,如果不查看页面,就很难知道这是否是问题所在。我怀疑Justin关于微调器div的说法是正确的。我会将该元素添加到我的页面对象中,然后尝试以下操作:
on(AccountHome)。微调器元素。when\u present。wait\u while\u present
。有意义。我只是在“等待”之前加了一个“睡眠1”,而“现在”,但我认为“现在”更有意义。谢谢你们!
on(AccountHome).billtransfers_element.when_present.billtransfers