【问题标题】:Watir: How I can click button in IE popup windowsWatir:我如何在 IE 弹出窗口中单击按钮
【发布时间】:2014-12-24 13:39:45
【问题描述】:

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

【问题讨论】:

  • Watir::Browser类有window方法,PA_Main是Browser的子类,还是browser变量指向错误?
  • PA_Main 是一类主页,当我尝试删除某些项目时,我得到 IE 弹出窗口。我需要单击其中的确定按钮。我也有弹出窗口的类,因为这是一个设置为不可调整大小的常用页面。 Watir 窗口不工作或我使用不正确。

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


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多