Watir::IE#close doesn't set @closing variable to false after closing IE -----------------------------------------------------------------------
Key: WTR-462 URL: http://jira.openqa.org/browse/WTR-462 Project: Watir Issue Type: Bug Components: Other Affects Versions: 1.6.7 Environment: WIN XP, IE7 Reporter: Alan Baird Priority: Major All - Consider the following example where I am trying to restart a browser using Watir's instance methods: irb(main):001:0> require 'watir' => true irb(main):002:0> br = Watir::IE.new => #<Watir::IE:0x2e384a4 url="about:blank" title=""> irb(main):003:0> br.goto 'google.com' => 1.641 irb(main):004:0> br.close => nil irb(main):005:0> br._new_window_init => 0.422 irb(main):006:0> br.goto 'google.com' => 0.859 irb(main):007:0> br.close => nil This actually works just fine until the last line where the browser doesn't close (but the first br.close does close the browser). So, I examined the close method: # Closes the Browser def close return unless exists? @closing = true @ie.stop wait rescue nil chwnd = @ie.hwnd.to_i @ie.quit while Win32API.new("user32","IsWindow", 'L', 'L').Call(chwnd) == 1 sleep 0.3 end end Note that @closing is never set to false. Thus, whenever close is called subsequently, it will return immediately because the first thing #exists? does is: return false if @closing The fix is simple, just add @closing = false to the end of #close. I tested this in a monkeypatched version and it fixes the problem as I recreated it in IRB above. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.openqa.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira _______________________________________________ Wtr-development mailing list Wtr-development@rubyforge.org http://rubyforge.org/mailman/listinfo/wtr-development