IE浏览器不关闭,文件下载弹出窗口需要关注

时间:2010-06-17 03:03:25

标签: watir autoit

我想再次点击链接后点击链接 单击后生成一个弹出窗口(文件下载)。 这里我有2个问题

1)我启动代码并保留它。代码的作用是 - 很久 process -it等待链接处于活动状态。一旦链接处于活动状态 它点击链接并打开下载弹出窗口(如果一切顺利的话) 好吧)然后它挂在那里(在任务中显示黄色闪烁) 吧,这意味着我必须点击浏览器才能进行处理 什么是下一个)。每当我必须点击IE时 下载弹出窗口出现。有办法处理这个或我在做什么 有些不对劲吗?

2)下一个问题是即使我点击IE浏览器,IE也无法获得 即使我写ie.close关闭。 我的代码如下:

                       ## if the link is active
                    ie.link(:text,a).click_no_wait
                     prompt_message = "Do you want to open or save this file?"
                     window_title = "File Download"
                     save_dialog =WIN32OLE.new("AutoItX3.Control")
                       save_dialog.WinGetText(window_title)

                       save_dialog_obtained =save_dialog.WinWaitActive(window_title)
                        save_dialog.WinKill(window_title)
                      # end
                      #'
                       #some more code -normal puts statements
                      #

                    ie.close
是因为一些奇怪的原因而挂断了吗?

2 个答案:

答案 0 :(得分:0)

#2。您可能希望将代码“附加”到父窗口,然后尝试关闭它。看起来当下载对话框打开时,父窗口正在失去焦点。你可以试试 -

ie = Watir :: IE.attach(:url,)(OR) ie = Watir :: IE.attach(:title,)

然后尝试关闭浏览器。

答案 1 :(得分:0)

我不确定你的弹出窗口问题,但我有代码来处理我发现的一个非常令人沮丧的弹出式问题。所以我把它包括在内是为了完整性。这里你的ie浏览器对象等同于我的@browser实例对象

require 'watir\winClicker'
require 'watir\contrib\enabled_popup'

def popup_clicker(text)
    begin
      Timeout::timeout 2 , PopupTimeout do
        if @browser.enabled_popup
          hwnd = @browser.enabled_popup(5)
          w = WinClicker.new
          w.makeWindowActive(hwnd)
          w.clickWindowsButton_hwnd(hwnd,text)
        end
      end
    rescue PopupTimeout
        # Do this line if you can't find a popup
    end
    @browser.wait
  end

然后单击确定按钮运行

popup_clicker('OK')

您可能会注意到的一件事是,您需要手动单击通过硬件单击触发弹出窗口的按钮。 AutoIT可能会处理它,或者如果你需要,我有一个手动Watir元素点击器。先试试吧。我也有代码来检查弹出内容,如果你想要(基本上把'popup_text = w.getStaticText_hWnd(hwnd).to_s'扔进去)。

至于2)确保'ie'对象仍然设置为浏览器。尝试重新连接,正如Namrantha所说。我不知道ie.close失败了。这应该可行,取代你认为合适的@browser,XXX是窗口的标题或正则表达式的等价物:

@browser = Watir::IE.attach(:title, XXXX)
@browser.close

弹出点击者原创的信用必须转到我能找到的链条中最远的地方,Watir-General谷歌小组中一个名叫Wesley Chen的可爱用户:

http://groups.google.com/group/watir-general/browse_thread/thread/41c45aae9f87da9b