Looks like this was also posted to StackOverflow

http://stackoverflow.com/questions/7824886/click-no-wait-does-not-work-the-second-time-when-autoit-is-used-to-handle-the-fi

Lets deal with it there as that is a much better venue for support
like this due to the formatting, commenting, and ability to edit the
questions and responses.

On Oct 18, 6:11 pm, chaitanya <[email protected]> wrote:
> Hi every1,
>
> I am facing the problem where I call the method click_no_wait on a
> control which displays a "File Download" box. It works fine for the
> 1st time. i use Auto It to handle the file download box and save the
> file at a particular location. Now, when I try to use the
> click_no_wait on the same control, it won't display the File Download
> box, but If i refresh the browser before calling the click_no_wait, it
> will display the File Download box. So, my question is that is it the
> case that Auto It is not being released and thus click_no_wait cannot
> find the control or is there something wrong with the implementation
> of the click_no_wait method.
>
> Environment:
> OS: Microsoft XP SP2
> Ruby : ruby 1.8.6 patchelevel 398
> Watir : 1.8.1
>
> Following is the way I am using the control
>
> def click_export_button
> control = browser.button(:id,'export-button')
> $DEBUG = true
> #browser.refresh         #- If this line is not commented, the dialog
> appears
> control.click_no_wait  #-- I replace click_no_wait with click and/or
> click! and the code freezes, so the control is found
> download_file("C:\\test.csv")
> $DEBUG = false
> end
>
> Here's the code for downloading the file
> def download_file(filePath = nil)
>       autoIt = WIN32OLE.new("AutoItX3.Control")
>       timeout = 10
>       fileDownloadWindowTitle = "File Download"
>       handle = autoIt.WinWait(fileDownloadWindowTitle, "Do you want to
> open or save this file?", timeout)
>       retVal = nil
>       unless (handle.eql? @autoItError)
>          autoIt.WinActivate(fileDownloadWindowTitle)
>          autoIt.ControlClick(fileDownloadWindowTitle, "", "&Save")
>          saveWindowTitle = "Save As"
>          windowHandle = autoIt.WinWaitActive(saveWindowTitle, "",
> timeout)
>          if (windowHandle == 1)
>             retVal = save_file(saveWindowTitle, autoIt, filePath) #--
> function to save the file to the location
>          end
>       else
>          puts "Unable to download the file"
>       end
>       autoIt.ole_free
>       return retVal
>    end
>
> Here's the error which I am getting
>
> ruby -e "$:.unshift('c:/ruby/lib/ruby/gems/1.8/gems/watir-1.8.1/lib/
> watir/win32ole').unshift('c:/ruby/lib/ruby/gems/1.8/gems/
> commonwatir-1.8.1/lib').unshift('c:/ruby/lib/ruby/gems/1.8/gems/
> firewatir-1.8.1/lib').unshift('c:/ruby/lib/ruby/gems/1.8/gems/
> watir-1.8.1/lib');require 'c:/ruby/lib/ruby/gems/1.8/gems/watir-1.8.1/
> lib/watir/core';Watir::Button.new(Watir::IE.attach(:hwnd,
> 6751822), :unique_number, 3).click!();"
> c:/ruby/lib/ruby/gems/1.8/gems/watir-1.8.1/lib/watir/element.rb:58:in
> `assert_exists': Unable to locate element, using :unique_number, 3
> (Watir::Exception::UnknownObjectException)
>         from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.8.1/lib/watir/
> element.rb:275:in `click!'
>         from -e:1
>
> Any help would be appreciated.
>
> Thanks in advance

-- 
Before posting, please read http://watir.com/support. In short: search before 
you ask, be nice.

[email protected]
http://groups.google.com/group/watir-general
[email protected]

Reply via email to