Not able to open new IE after it is closed.
-------------------------------------------
Key: WTR-480
URL: http://jira.openqa.org/browse/WTR-480
Project: Watir
Issue Type: Bug
Components: Unit Tests
Affects Versions: Soon
Environment: Windows XP running IE7
Reporter: bhavesh
Priority: Major
Fix For: Soon
Hi,
I have to close IE and open new IE again in every testcase.
I written an routine like this :
def setupnew(current_component="")
$ie.close if $ie
sleep(10)
$ie = Watir::IE.new()
sleep(10)
case current_component
when "WEB_ADMIN"
$ie.goto($adminLink)
when "WEB_REPORT"
$ie.goto($reportLink)
when "WEB_SEARCH"
$ie.goto($searchLink)
else
#puts "Setup case does not match"
end
end
This works well in Ruby 1.8
Recently i upgrade to Ruby 1.9.2 and this routine start failing.
It closes the IE if it is open but then not opening the new IE it
just came out of script throwing error.
Error coming out as :
TestCaseNum: I18N_0001
Description: Add AD Authentication from Webadmin, for FIGS.
E
Finished in 0.468750 seconds.
1) Error:
test_0001(TC_I18N):
NoMethodError: unknown property or method: `name'
HRESULT error code:0x800706ba
The RPC server is unavailable.
C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.8.1/lib/watir/ie-
class.rb:319:in
`method_missing'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.8.1/lib/watir/ie-
class.rb:319:in
`exists?'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.8.1/lib/watir/ie-
class.rb:406:in
`close'
C:/IE_AUTOMATION/kazeon/qa/watir-v1_4-TIP/KazModules/I18N/
I18N_Regression.rb
:47:in `setupnew'
C:/IE_AUTOMATION/kazeon/qa/watir-v1_4-TIP/KazModules/I18N/
I18N_Regression.rb
:102:in `test_0001'
I got the problem but not the solution.
In watir 1.6.7 which i use previously, code for ie.close is like
this :
#C:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.7\lib\watir
# 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
In watir 1.8.1 which i use now, code for ie.close is like this :
C:\Ruby192\lib\ruby\gems\1.9.1\gems\watir-1.8.1\lib\watir
# Closes the Browser
def close
return unless exists?
@ie.stop
wait rescue nil
chwnd = @ie.hwnd.to_i
@ie.quit
t = Time.now
while exists?
# just in case to avoid possible endless loop if failing to
close some
# window or tab
break if Time.now - t > 10
sleep 0.3
end
end
There is an change in code in 1.8.1.
If i replace the piece of code for ie.close of version 1.6.7 in 1.8.1
file, the same routine starts working fine.
So what needs to be done now to have this working with 1.8.1 code?
Bhavesh
--
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
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-development