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]
