vapir-ie 1.7.1.rc1 → 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/vapir-ie/container.rb +1 -1
- data/lib/vapir-ie/element.rb +4 -4
- data/lib/vapir-ie/ie-class.rb +4 -4
- data/lib/vapir-ie/page_container.rb +5 -5
- data/lib/vapir-ie/version.rb +1 -1
- data/lib/vapir-ie/win32ole.rb +1 -1
- metadata +15 -12
data/lib/vapir-ie/container.rb
CHANGED
@@ -27,7 +27,7 @@ module Vapir
|
|
27
27
|
options=handle_options(options, :handle => :ignore)
|
28
28
|
begin
|
29
29
|
yield
|
30
|
-
rescue WIN32OLERuntimeError, RuntimeError, Vapir::Exception::ExistenceFailureException
|
30
|
+
rescue WIN32OLERuntimeError, RuntimeError, NoMethodError, Vapir::Exception::ExistenceFailureException
|
31
31
|
raise if $!.class==RuntimeError && $!.message !~ /HRESULT/ # sometimes WIN32OLE raises a RuntimeError instead of a WIN32OLERuntimeError. only catch a RuntimeError if it's from WIN32OLE, indicated by HRESULT in the error message.
|
32
32
|
handle_existence_failure($!, options)
|
33
33
|
end
|
data/lib/vapir-ie/element.rb
CHANGED
@@ -333,7 +333,7 @@ module Vapir
|
|
333
333
|
if (scroll_left=el.scrollLeft).is_a?(Numeric) && (scroll_top=el.scrollTop).is_a?(Numeric)
|
334
334
|
xy+=Vector[scroll_left, scroll_top]
|
335
335
|
end
|
336
|
-
rescue WIN32OLERuntimeError
|
336
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
337
337
|
# doesn't respond to those; do nothing.
|
338
338
|
end
|
339
339
|
el=el.parentNode
|
@@ -349,7 +349,7 @@ module Vapir
|
|
349
349
|
doc=container.document_object || (return false)
|
350
350
|
win=doc.parentWindow || (return false)
|
351
351
|
document_object=win.document || (return false) # I don't know why container.document_object != container.document_object.parentWindow.document
|
352
|
-
rescue WIN32OLERuntimeError
|
352
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
353
353
|
# if a call to these methods from the above block raised this exception, we don't exist.
|
354
354
|
# if that's not the error, it's unexpected; raise.
|
355
355
|
if $!.message =~ /unknown property or method `(parentWindow|contentWindow|document)'/
|
@@ -361,7 +361,7 @@ module Vapir
|
|
361
361
|
begin
|
362
362
|
# we need a javascript function to test equality because comparing two WIN32OLEs always returns false (unless they have the same object_id, which these don't)
|
363
363
|
win.execScript("__watir_javascript_equals__=function(a, b){return a==b;}")
|
364
|
-
rescue WIN32OLERuntimeError
|
364
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
365
365
|
return false
|
366
366
|
end
|
367
367
|
|
@@ -373,7 +373,7 @@ module Vapir
|
|
373
373
|
return true
|
374
374
|
end
|
375
375
|
current_node=current_node.parentNode
|
376
|
-
rescue WIN32OLERuntimeError
|
376
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
377
377
|
# two possibilities for why we're here:
|
378
378
|
# if the method __watir_javascript_equals__ stops existing, then that probably means the window changed, meaning @element object doesn't exist anymore.
|
379
379
|
# if we encounter an error trying to access parentNode before reaching the current document, @element_object doesn't exist.
|
data/lib/vapir-ie/ie-class.rb
CHANGED
@@ -272,13 +272,13 @@ module Vapir
|
|
272
272
|
begin
|
273
273
|
title = window.locationname
|
274
274
|
title = window.document.title
|
275
|
-
rescue WIN32OLERuntimeError
|
275
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
276
276
|
end
|
277
277
|
ieTemp = window if Vapir::fuzzy_match(title, what)
|
278
278
|
when :hwnd
|
279
279
|
begin
|
280
280
|
ieTemp = window if what == window.HWND
|
281
|
-
rescue WIN32OLERuntimeError
|
281
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
282
282
|
end
|
283
283
|
else
|
284
284
|
raise ArgumentError
|
@@ -344,7 +344,7 @@ module Vapir
|
|
344
344
|
def exists?
|
345
345
|
!!(@ie && begin
|
346
346
|
@ie.name
|
347
|
-
rescue WIN32OLERuntimeError
|
347
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
348
348
|
raise unless $!.message =~ ExistenceFailureCodesRE
|
349
349
|
false
|
350
350
|
end)
|
@@ -440,7 +440,7 @@ module Vapir
|
|
440
440
|
else
|
441
441
|
true
|
442
442
|
end
|
443
|
-
rescue WIN32OLERuntimeError
|
443
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
444
444
|
raise unless $!.message =~ ExistenceFailureCodesRE
|
445
445
|
true
|
446
446
|
end
|
@@ -69,7 +69,7 @@ module Vapir
|
|
69
69
|
result=nil
|
70
70
|
begin
|
71
71
|
result=document_object.parentWindow.eval(source)
|
72
|
-
rescue WIN32OLERuntimeError
|
72
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
73
73
|
# don't retry more than once; don't catch anything but the particular thing we're looking for
|
74
74
|
if retried || $!.message !~ /unknown property or method:? `eval'/
|
75
75
|
raise
|
@@ -114,7 +114,7 @@ module Vapir
|
|
114
114
|
doc_or_ret = proc do
|
115
115
|
begin
|
116
116
|
document_object
|
117
|
-
rescue WIN32OLERuntimeError
|
117
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
118
118
|
return
|
119
119
|
end
|
120
120
|
end
|
@@ -171,7 +171,7 @@ module Vapir
|
|
171
171
|
frame=document.frames[i.to_s]
|
172
172
|
frame_document=begin
|
173
173
|
frame.document
|
174
|
-
rescue WIN32OLERuntimeError
|
174
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
175
175
|
$!
|
176
176
|
end
|
177
177
|
case frame_document
|
@@ -181,7 +181,7 @@ module Vapir
|
|
181
181
|
when WIN32OLE
|
182
182
|
# frame has a document - check recursively
|
183
183
|
all_frames_complete?(frame_document, urls)
|
184
|
-
when WIN32OLERuntimeError
|
184
|
+
when WIN32OLERuntimeError, NoMethodError
|
185
185
|
# if we get a WIN32OLERuntimeError with access denied, that is probably a 404 and it's not going
|
186
186
|
# to load, so no reason to keep waiting for it - consider it 'complete' and return true.
|
187
187
|
# there's probably a better method of determining this but I haven't found it yet.
|
@@ -190,7 +190,7 @@ module Vapir
|
|
190
190
|
raise RuntimeError, "unknown frame.document: #{frame_document.inspect} (#{frame_document.class})"
|
191
191
|
end
|
192
192
|
end
|
193
|
-
rescue WIN32OLERuntimeError
|
193
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
194
194
|
return $!
|
195
195
|
end
|
196
196
|
end
|
data/lib/vapir-ie/version.rb
CHANGED
data/lib/vapir-ie/win32ole.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vapir-ie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
4
|
+
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 7
|
8
8
|
- 1
|
9
|
-
|
10
|
-
version: 1.7.1.rc1
|
9
|
+
version: 1.7.1
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Ethan
|
@@ -15,13 +14,14 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-08-
|
17
|
+
date: 2010-08-23 00:00:00 -04:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: win32-process
|
23
22
|
prerelease: false
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
@@ -36,6 +36,7 @@ dependencies:
|
|
36
36
|
name: windows-pr
|
37
37
|
prerelease: false
|
38
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
39
40
|
requirements:
|
40
41
|
- - ">="
|
41
42
|
- !ruby/object:Gem::Version
|
@@ -50,6 +51,7 @@ dependencies:
|
|
50
51
|
name: vapir-common
|
51
52
|
prerelease: false
|
52
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
53
55
|
requirements:
|
54
56
|
- - "="
|
55
57
|
- !ruby/object:Gem::Version
|
@@ -57,14 +59,14 @@ dependencies:
|
|
57
59
|
- 1
|
58
60
|
- 7
|
59
61
|
- 1
|
60
|
-
|
61
|
-
version: 1.7.1.rc1
|
62
|
+
version: 1.7.1
|
62
63
|
type: :runtime
|
63
64
|
version_requirements: *id003
|
64
65
|
- !ruby/object:Gem::Dependency
|
65
66
|
name: nokogiri
|
66
67
|
prerelease: false
|
67
68
|
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
68
70
|
requirements:
|
69
71
|
- - ">="
|
70
72
|
- !ruby/object:Gem::Version
|
@@ -77,6 +79,7 @@ dependencies:
|
|
77
79
|
name: ffi
|
78
80
|
prerelease: false
|
79
81
|
requirement: &id005 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
80
83
|
requirements:
|
81
84
|
- - ">="
|
82
85
|
- !ruby/object:Gem::Version
|
@@ -142,6 +145,7 @@ rdoc_options:
|
|
142
145
|
require_paths:
|
143
146
|
- lib
|
144
147
|
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
145
149
|
requirements:
|
146
150
|
- - ">="
|
147
151
|
- !ruby/object:Gem::Version
|
@@ -149,19 +153,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
153
|
- 0
|
150
154
|
version: "0"
|
151
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
152
157
|
requirements:
|
153
|
-
- - "
|
158
|
+
- - ">="
|
154
159
|
- !ruby/object:Gem::Version
|
155
160
|
segments:
|
156
|
-
-
|
157
|
-
|
158
|
-
- 1
|
159
|
-
version: 1.3.1
|
161
|
+
- 0
|
162
|
+
version: "0"
|
160
163
|
requirements:
|
161
164
|
- Microsoft Windows
|
162
165
|
- Internet Explorer
|
163
166
|
rubyforge_project:
|
164
|
-
rubygems_version: 1.3.
|
167
|
+
rubygems_version: 1.3.7
|
165
168
|
signing_key:
|
166
169
|
specification_version: 3
|
167
170
|
summary: Library for automating the Internet Explorer browser in Ruby
|