Watir:我如何点击IE弹出窗口中的按钮

时间:2014-12-23 16:45:55

标签: ruby cucumber watir watir-webdriver page-object-gem

我有一个自定义的弹出式IE窗口,iframe中包含按钮。我无法点击其中的任何按钮。我知道如何使用iframe,但我无法切换到此窗口。窗口有标题和URL。

我写了这个方法:

  def confirm_ok
    self.in_iframe(:id => 'frmMain') do |frame|
      self.button_element(:id => 'btnOK', :frame => frame).click
    end
  end

但是我收到了这个错误:

Watir::Exception::UnknownFrameException: unable to locate iframe using {:id=>"frmMain", :tag_name=>"iframe"}

我使用Watir,PageObject。并在IE下运行场景。

Watir的方法不起作用:

browser.window(:title => "annoying popup").use do
  browser.button(:id => "close").click
end

我收到错误

NoMethodError: undefined method `window' for #<PA_Main:0x33f6780>

1 个答案:

答案 0 :(得分:1)

尽我可以告诉你有两个不同的问题。

首先,我不知道如何将浏览器变量设置为页面对象实例。 Page Object Module肯定将browser设置为可读属性。

因此,如果代码位于具有import PageObject的类中,您应该能够browser.window(...)完成。

如果您正在使用此类之外的代码,则需要确保您位于可以访问Watir :: Browser实例的范围内。如果您定义了页面对象,则可以使用它:my_page_object.browser.window(...)

其次 - 根据您所描述的内容,iframe用法必须与窗口用法结合使用:

browser.window(title: "annoying popup") do browser.iframe(id: 'frmMain').button(id: "close").click end