我有一个自定义的弹出式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>
答案 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