watir-webdriver 0.3.5 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +4 -3
- data/lib/watir-webdriver/elements/element.rb +7 -0
- data/lib/watir-webdriver/version.rb +1 -1
- data/lib/watir-webdriver/window_switching.rb +6 -1
- data/spec/element_spec.rb +13 -0
- data/spec/html/removed_element.html +17 -0
- data/spec/spec_helper.rb +4 -0
- metadata +141 -81
data/.travis.yml
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
rvm:
|
2
2
|
- 1.9.2
|
3
|
-
- 1.9.3
|
4
3
|
notifications:
|
5
4
|
recipients:
|
6
5
|
- jari.bakken@gmail.com
|
@@ -8,5 +7,7 @@ notifications:
|
|
8
7
|
before_script:
|
9
8
|
- support/travis.sh
|
10
9
|
env:
|
11
|
-
- WATIR_WEBDRIVER_BROWSER=firefox
|
12
|
-
- WATIR_WEBDRIVER_BROWSER=
|
10
|
+
- WATIR_WEBDRIVER_BROWSER=firefox ALWAYS_LOCATE=false
|
11
|
+
- WATIR_WEBDRIVER_BROWSER=firefox ALWAYS_LOCATE=true
|
12
|
+
- WATIR_WEBDRIVER_BROWSER=chrome ALWAYS_LOCATE=false
|
13
|
+
- WATIR_WEBDRIVER_BROWSER=chrome ALWAYS_LOCATE=true
|
@@ -239,6 +239,7 @@ module Watir
|
|
239
239
|
|
240
240
|
def assert_exists
|
241
241
|
if @element and not Watir.always_locate?
|
242
|
+
assert_not_stale
|
242
243
|
return
|
243
244
|
end
|
244
245
|
|
@@ -249,6 +250,12 @@ module Watir
|
|
249
250
|
end
|
250
251
|
end
|
251
252
|
|
253
|
+
def assert_not_stale
|
254
|
+
@element.enabled? # do a staleness check - any wire call will do.
|
255
|
+
rescue Selenium::WebDriver::Error::ObsoleteElementError => ex
|
256
|
+
raise UnknownObjectException, "#{ex.message} - #{selector_string}"
|
257
|
+
end
|
258
|
+
|
252
259
|
def browser
|
253
260
|
@parent.browser
|
254
261
|
end
|
@@ -60,7 +60,12 @@ module Watir
|
|
60
60
|
rescue Exception::NoMatchingWindowFoundException
|
61
61
|
false
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
|
+
def present?
|
65
|
+
@handle = nil # relocate
|
66
|
+
|
67
|
+
exists?
|
68
|
+
end
|
64
69
|
|
65
70
|
def ==(other)
|
66
71
|
return false unless other.kind_of?(self.class)
|
data/spec/element_spec.rb
CHANGED
@@ -30,4 +30,17 @@ describe Watir::Element do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
describe "#exists?" do
|
34
|
+
it "should not propagate ObsoleteElementErrors" do
|
35
|
+
browser.goto 'file://' + File.expand_path('html/removed_element.html', File.dirname(__FILE__))
|
36
|
+
|
37
|
+
button = browser.button(:id => "remove-button")
|
38
|
+
element = browser.div(:id => "text")
|
39
|
+
|
40
|
+
element.should exist
|
41
|
+
button.click
|
42
|
+
element.should_not exist
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
33
46
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>obsolete element</title>
|
5
|
+
<script type="text/javascript" charset="utf-8">
|
6
|
+
function removeText() {
|
7
|
+
var e = document.getElementById("text");
|
8
|
+
e.parentNode.removeChild(e);
|
9
|
+
}
|
10
|
+
</script>
|
11
|
+
</head>
|
12
|
+
|
13
|
+
<body>
|
14
|
+
<button id='remove-button' onclick="removeText()">Remove text</button>
|
15
|
+
<div id="text">Text</div>
|
16
|
+
</body>
|
17
|
+
</html>
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,122 +1,171 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: watir-webdriver
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 6
|
10
|
+
version: 0.3.6
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Jari Bakken
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2011-11-03 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: selenium-webdriver
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 19
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 2
|
32
|
+
- 2
|
21
33
|
version: 0.2.2
|
22
34
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
26
37
|
name: rspec
|
27
|
-
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
40
|
none: false
|
29
|
-
requirements:
|
41
|
+
requirements:
|
30
42
|
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 15
|
45
|
+
segments:
|
46
|
+
- 2
|
47
|
+
- 6
|
48
|
+
version: "2.6"
|
33
49
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
37
52
|
name: yard
|
38
|
-
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
55
|
none: false
|
40
|
-
requirements:
|
56
|
+
requirements:
|
41
57
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 7
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
- 6
|
63
|
+
version: "0.6"
|
44
64
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
65
|
+
version_requirements: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
48
67
|
name: webidl
|
49
|
-
|
68
|
+
prerelease: false
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
70
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 25
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
- 1
|
78
|
+
- 1
|
54
79
|
version: 0.1.1
|
55
80
|
type: :development
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
59
83
|
name: sinatra
|
60
|
-
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
86
|
none: false
|
62
|
-
requirements:
|
87
|
+
requirements:
|
63
88
|
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 15
|
91
|
+
segments:
|
92
|
+
- 1
|
93
|
+
- 0
|
94
|
+
version: "1.0"
|
66
95
|
type: :development
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
96
|
+
version_requirements: *id005
|
97
|
+
- !ruby/object:Gem::Dependency
|
70
98
|
name: rake
|
71
|
-
|
99
|
+
prerelease: false
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
101
|
none: false
|
73
|
-
requirements:
|
102
|
+
requirements:
|
74
103
|
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 63
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
- 9
|
109
|
+
- 2
|
76
110
|
version: 0.9.2
|
77
111
|
type: :development
|
78
|
-
|
79
|
-
|
80
|
-
- !ruby/object:Gem::Dependency
|
112
|
+
version_requirements: *id006
|
113
|
+
- !ruby/object:Gem::Dependency
|
81
114
|
name: fuubar
|
82
|
-
|
115
|
+
prerelease: false
|
116
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
83
117
|
none: false
|
84
|
-
requirements:
|
118
|
+
requirements:
|
85
119
|
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
hash: 19
|
122
|
+
segments:
|
123
|
+
- 0
|
124
|
+
- 0
|
125
|
+
- 6
|
87
126
|
version: 0.0.6
|
88
127
|
type: :development
|
89
|
-
|
90
|
-
|
91
|
-
- !ruby/object:Gem::Dependency
|
128
|
+
version_requirements: *id007
|
129
|
+
- !ruby/object:Gem::Dependency
|
92
130
|
name: nokogiri
|
93
|
-
|
131
|
+
prerelease: false
|
132
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
94
133
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
hash: 3
|
138
|
+
segments:
|
139
|
+
- 0
|
140
|
+
version: "0"
|
99
141
|
type: :development
|
100
|
-
|
101
|
-
|
102
|
-
- !ruby/object:Gem::Dependency
|
142
|
+
version_requirements: *id008
|
143
|
+
- !ruby/object:Gem::Dependency
|
103
144
|
name: activesupport
|
104
|
-
|
145
|
+
prerelease: false
|
146
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
105
147
|
none: false
|
106
|
-
requirements:
|
148
|
+
requirements:
|
107
149
|
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
hash: 9
|
152
|
+
segments:
|
153
|
+
- 2
|
154
|
+
- 3
|
155
|
+
- 5
|
109
156
|
version: 2.3.5
|
110
157
|
type: :development
|
111
|
-
|
112
|
-
version_requirements: *2169409400
|
158
|
+
version_requirements: *id009
|
113
159
|
description: WebDriver-backed Watir
|
114
|
-
email:
|
160
|
+
email:
|
115
161
|
- jari.bakken@gmail.com
|
116
162
|
executables: []
|
163
|
+
|
117
164
|
extensions: []
|
165
|
+
|
118
166
|
extra_rdoc_files: []
|
119
|
-
|
167
|
+
|
168
|
+
files:
|
120
169
|
- .document
|
121
170
|
- .gitignore
|
122
171
|
- .gitmodules
|
@@ -185,6 +234,7 @@ files:
|
|
185
234
|
- spec/element_locator_spec.rb
|
186
235
|
- spec/element_spec.rb
|
187
236
|
- spec/html/alerts.html
|
237
|
+
- spec/html/removed_element.html
|
188
238
|
- spec/html/special_chars.html
|
189
239
|
- spec/html/wait.html
|
190
240
|
- spec/implementation.rb
|
@@ -198,35 +248,45 @@ files:
|
|
198
248
|
- watir-webdriver.gemspec
|
199
249
|
homepage: http://github.com/jarib/watir-webdriver
|
200
250
|
licenses: []
|
251
|
+
|
201
252
|
post_install_message:
|
202
253
|
rdoc_options: []
|
203
|
-
|
254
|
+
|
255
|
+
require_paths:
|
204
256
|
- lib
|
205
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
257
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
206
258
|
none: false
|
207
|
-
requirements:
|
208
|
-
- -
|
209
|
-
- !ruby/object:Gem::Version
|
210
|
-
|
211
|
-
|
259
|
+
requirements:
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
hash: 3
|
263
|
+
segments:
|
264
|
+
- 0
|
265
|
+
version: "0"
|
266
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
267
|
none: false
|
213
|
-
requirements:
|
214
|
-
- -
|
215
|
-
- !ruby/object:Gem::Version
|
216
|
-
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
hash: 3
|
272
|
+
segments:
|
273
|
+
- 0
|
274
|
+
version: "0"
|
217
275
|
requirements: []
|
276
|
+
|
218
277
|
rubyforge_project: watir-webdriver
|
219
278
|
rubygems_version: 1.8.10
|
220
279
|
signing_key:
|
221
280
|
specification_version: 3
|
222
281
|
summary: Watir on WebDriver
|
223
|
-
test_files:
|
282
|
+
test_files:
|
224
283
|
- spec/alert_spec.rb
|
225
284
|
- spec/browser_spec.rb
|
226
285
|
- spec/container_spec.rb
|
227
286
|
- spec/element_locator_spec.rb
|
228
287
|
- spec/element_spec.rb
|
229
288
|
- spec/html/alerts.html
|
289
|
+
- spec/html/removed_element.html
|
230
290
|
- spec/html/special_chars.html
|
231
291
|
- spec/html/wait.html
|
232
292
|
- spec/implementation.rb
|