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 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=chrome
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
@@ -1,3 +1,3 @@
1
1
  module Watir
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
@@ -60,7 +60,12 @@ module Watir
60
60
  rescue Exception::NoMatchingWindowFoundException
61
61
  false
62
62
  end
63
- alias_method :present?, :exists? # for Wait::EventuallyPresent
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
@@ -17,6 +17,10 @@ require 'rspec'
17
17
  include Watir
18
18
  include Watir::Exception
19
19
 
20
+ if ENV['ALWAYS_LOCATE'] == "false"
21
+ Watir.always_locate = false
22
+ end
23
+
20
24
  WEBDRIVER_SELECTORS = [:class, :class_name, :css, :id, :name, :tag_name, :xpath]
21
25
 
22
26
  if ENV['TRAVIS']
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
- version: 0.3.5
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
- date: 2011-10-05 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-11-03 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: selenium-webdriver
16
- requirement: &2169429060 !ruby/object:Gem::Requirement
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
- prerelease: false
24
- version_requirements: *2169429060
25
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
26
37
  name: rspec
27
- requirement: &2169428560 !ruby/object:Gem::Requirement
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
- version: '2.6'
43
+ - !ruby/object:Gem::Version
44
+ hash: 15
45
+ segments:
46
+ - 2
47
+ - 6
48
+ version: "2.6"
33
49
  type: :development
34
- prerelease: false
35
- version_requirements: *2169428560
36
- - !ruby/object:Gem::Dependency
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
37
52
  name: yard
38
- requirement: &2169427520 !ruby/object:Gem::Requirement
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
- version: '0.6'
58
+ - !ruby/object:Gem::Version
59
+ hash: 7
60
+ segments:
61
+ - 0
62
+ - 6
63
+ version: "0.6"
44
64
  type: :development
45
- prerelease: false
46
- version_requirements: *2169427520
47
- - !ruby/object:Gem::Dependency
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
48
67
  name: webidl
49
- requirement: &2169426200 !ruby/object:Gem::Requirement
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
- prerelease: false
57
- version_requirements: *2169426200
58
- - !ruby/object:Gem::Dependency
81
+ version_requirements: *id004
82
+ - !ruby/object:Gem::Dependency
59
83
  name: sinatra
60
- requirement: &2169412600 !ruby/object:Gem::Requirement
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
- version: '1.0'
89
+ - !ruby/object:Gem::Version
90
+ hash: 15
91
+ segments:
92
+ - 1
93
+ - 0
94
+ version: "1.0"
66
95
  type: :development
67
- prerelease: false
68
- version_requirements: *2169412600
69
- - !ruby/object:Gem::Dependency
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
70
98
  name: rake
71
- requirement: &2169411380 !ruby/object:Gem::Requirement
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
- prerelease: false
79
- version_requirements: *2169411380
80
- - !ruby/object:Gem::Dependency
112
+ version_requirements: *id006
113
+ - !ruby/object:Gem::Dependency
81
114
  name: fuubar
82
- requirement: &2169410480 !ruby/object:Gem::Requirement
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
- prerelease: false
90
- version_requirements: *2169410480
91
- - !ruby/object:Gem::Dependency
128
+ version_requirements: *id007
129
+ - !ruby/object:Gem::Dependency
92
130
  name: nokogiri
93
- requirement: &2169409940 !ruby/object:Gem::Requirement
131
+ prerelease: false
132
+ requirement: &id008 !ruby/object:Gem::Requirement
94
133
  none: false
95
- requirements:
96
- - - ! '>='
97
- - !ruby/object:Gem::Version
98
- version: '0'
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ hash: 3
138
+ segments:
139
+ - 0
140
+ version: "0"
99
141
  type: :development
100
- prerelease: false
101
- version_requirements: *2169409940
102
- - !ruby/object:Gem::Dependency
142
+ version_requirements: *id008
143
+ - !ruby/object:Gem::Dependency
103
144
  name: activesupport
104
- requirement: &2169409400 !ruby/object:Gem::Requirement
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
- prerelease: false
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
- files:
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
- require_paths:
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
- version: '0'
211
- required_rubygems_version: !ruby/object:Gem::Requirement
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
- version: '0'
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