watir 6.15.1 → 6.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -2
- data/.travis.yml +2 -0
- data/CHANGES.md +13 -0
- data/Rakefile +6 -0
- data/lib/watir.rb +1 -0
- data/lib/watir/browser.rb +4 -1
- data/lib/watir/element_collection.rb +27 -17
- data/lib/watir/elements/element.rb +41 -14
- data/lib/watir/elements/iframe.rb +3 -1
- data/lib/watir/elements/radio.rb +7 -2
- data/lib/watir/elements/select.rb +1 -0
- data/lib/watir/locators.rb +21 -21
- data/lib/watir/locators/button/matcher.rb +40 -0
- data/lib/watir/locators/cell/selector_builder.rb +3 -0
- data/lib/watir/locators/element/locator.rb +29 -172
- data/lib/watir/locators/element/matcher.rb +127 -0
- data/lib/watir/locators/element/selector_builder.rb +69 -23
- data/lib/watir/locators/element/selector_builder/xpath.rb +3 -10
- data/lib/watir/locators/row/selector_builder.rb +5 -5
- data/lib/watir/locators/text_area/selector_builder.rb +0 -14
- data/lib/watir/locators/text_area/selector_builder/xpath.rb +2 -2
- data/lib/watir/locators/text_field/matcher.rb +38 -0
- data/lib/watir/radio_set.rb +28 -31
- data/lib/watir/scroll.rb +69 -0
- data/lib/watir/version.rb +1 -1
- data/spec/locator_spec_helper.rb +58 -14
- data/spec/unit/element_locator_spec.rb +46 -591
- data/spec/unit/match_elements/button_spec.rb +80 -0
- data/spec/unit/match_elements/element_spec.rb +368 -0
- data/spec/unit/match_elements/text_field_spec.rb +79 -0
- data/spec/unit/selector_builder/anchor_spec.rb +51 -0
- data/spec/unit/selector_builder/button_spec.rb +206 -0
- data/spec/unit/selector_builder/cell_spec.rb +63 -0
- data/spec/unit/selector_builder/element_spec.rb +744 -0
- data/spec/unit/selector_builder/row_spec.rb +111 -0
- data/spec/unit/selector_builder/text_field_spec.rb +189 -0
- data/spec/unit/selector_builder/textarea_spec.rb +25 -0
- data/spec/watirspec/browser_spec.rb +7 -8
- data/spec/watirspec/element_hidden_spec.rb +1 -2
- data/spec/watirspec/elements/element_spec.rb +52 -16
- data/spec/watirspec/elements/iframe_spec.rb +1 -1
- data/spec/watirspec/elements/select_list_spec.rb +1 -1
- data/spec/watirspec/html/obscured.html +3 -1
- data/spec/watirspec/html/scroll.html +32 -0
- data/spec/watirspec/relaxed_locate_spec.rb +6 -1
- data/spec/watirspec/scroll_spec.rb +106 -0
- data/spec/watirspec/support/rspec_matchers.rb +2 -0
- data/spec/watirspec/wait_spec.rb +1 -1
- data/watir.gemspec +2 -4
- metadata +36 -33
- data/lib/watir/locators/button/locator.rb +0 -32
- data/lib/watir/locators/button/validator.rb +0 -17
- data/lib/watir/locators/cell/locator.rb +0 -13
- data/lib/watir/locators/element/validator.rb +0 -11
- data/lib/watir/locators/row/locator.rb +0 -13
- data/lib/watir/locators/text_field/locator.rb +0 -31
- data/lib/watir/locators/text_field/validator.rb +0 -13
- data/spec/unit/anchor_locator_spec.rb +0 -68
- data/spec/watirspec/selector_builder/button_spec.rb +0 -250
- data/spec/watirspec/selector_builder/cell_spec.rb +0 -92
- data/spec/watirspec/selector_builder/element_spec.rb +0 -628
- data/spec/watirspec/selector_builder/row_spec.rb +0 -148
- data/spec/watirspec/selector_builder/text_spec.rb +0 -199
@@ -23,7 +23,7 @@ describe 'IFrame' do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'locates an element defined by Selenium Element' do
|
26
|
-
iframe = browser.iframe(id: 'iframe_1').
|
26
|
+
iframe = browser.iframe(id: 'iframe_1').locate
|
27
27
|
se_element = iframe.instance_variable_get('@element')
|
28
28
|
iframe2 = browser.element(element: se_element).to_subtype
|
29
29
|
expect(iframe2).to eq iframe
|
@@ -346,7 +346,7 @@ describe 'SelectList' do
|
|
346
346
|
end
|
347
347
|
|
348
348
|
it "raises NoValueFoundException if the option doesn't exist" do
|
349
|
-
message = /#<Watir::Select: located:
|
349
|
+
message = /#<Watir::Select: located: false; {:name=>"new_user_country", :tag_name=>"select"}>/
|
350
350
|
expect { browser.select_list(name: 'new_user_country').select('missing_option') }
|
351
351
|
.to raise_no_value_found_exception message
|
352
352
|
expect { browser.select_list(name: 'new_user_country').select(/missing_option/) }
|
@@ -29,6 +29,8 @@
|
|
29
29
|
|
30
30
|
<button style="position: absolute; width: 0; height: 0; top: -500px; left: -500px; overflow: hidden" id="off_screen">off-screen</button>
|
31
31
|
<button style="display: none;" id="hidden">hidden</button>
|
32
|
-
<
|
32
|
+
<div id="requires_scrolling_container">
|
33
|
+
<button style="position: absolute; top: 5000px;" id="requires_scrolling">requires scrolling</button>'
|
34
|
+
</div>
|
33
35
|
</body>
|
34
36
|
</html>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<script>
|
4
|
+
function isElementInViewport(el) {
|
5
|
+
var top = el.offsetTop;
|
6
|
+
var left = el.offsetLeft;
|
7
|
+
var width = el.offsetWidth;
|
8
|
+
var height = el.offsetHeight;
|
9
|
+
|
10
|
+
while (el.offsetParent) {
|
11
|
+
el = el.offsetParent;
|
12
|
+
top += el.offsetTop;
|
13
|
+
left += el.offsetLeft;
|
14
|
+
}
|
15
|
+
|
16
|
+
return (
|
17
|
+
top < (window.pageYOffset + window.innerHeight) &&
|
18
|
+
left < (window.pageXOffset + window.innerWidth) &&
|
19
|
+
(top + height) > window.pageYOffset &&
|
20
|
+
(left + width) > window.pageXOffset
|
21
|
+
);
|
22
|
+
}
|
23
|
+
</script>
|
24
|
+
</head>
|
25
|
+
<body>
|
26
|
+
<div style="height: 180%; position: relative;">
|
27
|
+
<button style="position: absolute;">Top</button>
|
28
|
+
<button style="position: absolute; top: 50%;">Center</button>
|
29
|
+
<button style="position: absolute; bottom: 0;">Bottom</button>
|
30
|
+
</div>
|
31
|
+
</body>
|
32
|
+
</html>
|
@@ -71,8 +71,13 @@ describe 'Watir#relaxed_locate?' do
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
+
it 'does not wait for parent element to be present when querying child element' do
|
75
|
+
el = browser.element(id: 'not_there').element(id: 'doesnt_matter')
|
76
|
+
expect { el.present? }.to execute_immediately
|
77
|
+
end
|
78
|
+
|
74
79
|
it 'waits for parent element to be present before locating a collection' do
|
75
|
-
els = browser.element(id:
|
80
|
+
els = browser.element(id: /not|there/).elements(id: 'doesnt_matter')
|
76
81
|
expect { els.to_a }.to wait_and_raise_unknown_object_exception
|
77
82
|
end
|
78
83
|
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
require 'watirspec_helper'
|
2
|
+
|
3
|
+
describe Watir::Scrolling do
|
4
|
+
before(:each) do
|
5
|
+
browser.goto(WatirSpec.url_for('scroll.html'))
|
6
|
+
end
|
7
|
+
|
8
|
+
def visible?(element)
|
9
|
+
browser.execute_script('return isElementInViewport(arguments[0]);', element)
|
10
|
+
end
|
11
|
+
|
12
|
+
context 'when scrolling Browser' do
|
13
|
+
describe '#to' do
|
14
|
+
it 'scrolls to the top of the page' do
|
15
|
+
browser.scroll.to :bottom
|
16
|
+
browser.scroll.to :top
|
17
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(true)
|
18
|
+
expect(visible?(browser.button(text: 'Center'))).to eq(true)
|
19
|
+
expect(visible?(browser.button(text: 'Bottom'))).to eq(false)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'scrolls to the center of the page' do
|
23
|
+
browser.scroll.to :center
|
24
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(false)
|
25
|
+
expect(visible?(browser.button(text: 'Center'))).to eq(true)
|
26
|
+
expect(visible?(browser.button(text: 'Bottom'))).to eq(false)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'scrolls to the bottom of the page' do
|
30
|
+
browser.scroll.to :bottom
|
31
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(false)
|
32
|
+
expect(visible?(browser.button(text: 'Center'))).to eq(true)
|
33
|
+
expect(visible?(browser.button(text: 'Bottom'))).to eq(true)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'scrolls to coordinates' do
|
37
|
+
button = browser.button(text: 'Bottom')
|
38
|
+
browser.scroll.to [button.wd.location.x, button.wd.location.y]
|
39
|
+
expect(visible?(button)).to eq(true)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'raises error when scroll point is not vaild' do
|
43
|
+
expect { browser.scroll.to(:blah) }.to raise_error(ArgumentError)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '#by' do
|
48
|
+
it 'offset' do
|
49
|
+
browser.scroll.to :bottom
|
50
|
+
browser.scroll.by(-10_000, -10_000)
|
51
|
+
|
52
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(true)
|
53
|
+
expect(visible?(browser.button(text: 'Center'))).to eq(true)
|
54
|
+
expect(visible?(browser.button(text: 'Bottom'))).to eq(false)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context 'when scrolling Element' do
|
60
|
+
describe '#to' do
|
61
|
+
it 'scrolls to element (top)' do
|
62
|
+
browser.button(text: 'Center').scroll.to
|
63
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(false)
|
64
|
+
expect(visible?(browser.button(text: 'Center'))).to eq(true)
|
65
|
+
expect(visible?(browser.button(text: 'Bottom'))).to eq(true)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'scrolls to element (center)' do
|
69
|
+
browser.button(text: 'Center').scroll.to :center
|
70
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(false)
|
71
|
+
expect(visible?(browser.button(text: 'Center'))).to eq(true)
|
72
|
+
expect(visible?(browser.button(text: 'Bottom'))).to eq(false)
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'scrolls to element (bottom)' do
|
76
|
+
browser.button(text: 'Center').scroll.to :bottom
|
77
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(true)
|
78
|
+
expect(visible?(browser.button(text: 'Center'))).to eq(true)
|
79
|
+
expect(visible?(browser.button(text: 'Bottom'))).to eq(false)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'scrolls to element multiple times' do
|
83
|
+
2.times do
|
84
|
+
browser.button(text: 'Center').scroll.to(:center)
|
85
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(false)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'raises error when scroll param is not vaild' do
|
90
|
+
expect { browser.button(text: 'Top').scroll.to(:blah) }.to raise_error(ArgumentError)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe '#by' do
|
95
|
+
it 'offset' do
|
96
|
+
browser.scroll.to :bottom
|
97
|
+
button = browser.button(text: 'Bottom')
|
98
|
+
button.scroll.by(-10_000, -10_000) # simulate scrolling to top
|
99
|
+
|
100
|
+
expect(visible?(browser.button(text: 'Top'))).to eq(true)
|
101
|
+
expect(visible?(browser.button(text: 'Center'))).to eq(true)
|
102
|
+
expect(visible?(browser.button(text: 'Bottom'))).to eq(false)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
if defined?(RSpec)
|
2
2
|
DEPRECATION_WARNINGS = %i[selector_parameters
|
3
|
+
element_cache
|
3
4
|
ready_state
|
4
5
|
class_array
|
5
6
|
use_capabilities
|
@@ -10,6 +11,7 @@ if defined?(RSpec)
|
|
10
11
|
stale_visible
|
11
12
|
stale_present
|
12
13
|
select_by
|
14
|
+
value_button
|
13
15
|
wait_until_present
|
14
16
|
wait_while_present].freeze
|
15
17
|
|
data/spec/watirspec/wait_spec.rb
CHANGED
@@ -167,7 +167,7 @@ describe Watir::Element do
|
|
167
167
|
end
|
168
168
|
|
169
169
|
it 'does not error when element goes stale' do
|
170
|
-
element = browser.div(id: 'foo').
|
170
|
+
element = browser.div(id: 'foo').locate
|
171
171
|
|
172
172
|
allow(element).to receive(:stale?).and_return(false, true)
|
173
173
|
|
data/watir.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
27
27
|
s.require_paths = ['lib']
|
28
28
|
|
29
|
-
s.add_dependency 'selenium-webdriver', '~> 3.
|
29
|
+
s.add_dependency 'selenium-webdriver', '~> 3.6'
|
30
30
|
s.add_runtime_dependency 'regexp_parser', '~>1.2'
|
31
31
|
|
32
32
|
s.add_development_dependency 'activesupport', '~> 4.0', '>= 4.1.11' # for pluralization during code generation
|
@@ -41,9 +41,7 @@ Gem::Specification.new do |s|
|
|
41
41
|
s.add_development_dependency 'selenium_statistics'
|
42
42
|
s.add_development_dependency 'simplecov'
|
43
43
|
s.add_development_dependency 'simplecov-console'
|
44
|
-
|
45
|
-
# https://bugs.chromium.org/p/chromedriver/issues/detail?id=2615
|
46
|
-
s.add_development_dependency 'webdrivers', '= 3.4.1'
|
44
|
+
s.add_development_dependency 'webdrivers', '~> 3.4.2'
|
47
45
|
s.add_development_dependency 'webidl', '>= 0.2.2'
|
48
46
|
s.add_development_dependency 'yard', '> 0.8.2.1'
|
49
47
|
s.add_development_dependency 'yard-doctest', '>= 0.1.8'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watir
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Rodionov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-12-
|
12
|
+
date: 2018-12-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: selenium-webdriver
|
@@ -17,20 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '3.
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 3.4.1
|
20
|
+
version: '3.6'
|
24
21
|
type: :runtime
|
25
22
|
prerelease: false
|
26
23
|
version_requirements: !ruby/object:Gem::Requirement
|
27
24
|
requirements:
|
28
25
|
- - "~>"
|
29
26
|
- !ruby/object:Gem::Version
|
30
|
-
version: '3.
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 3.4.1
|
27
|
+
version: '3.6'
|
34
28
|
- !ruby/object:Gem::Dependency
|
35
29
|
name: regexp_parser
|
36
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -223,16 +217,16 @@ dependencies:
|
|
223
217
|
name: webdrivers
|
224
218
|
requirement: !ruby/object:Gem::Requirement
|
225
219
|
requirements:
|
226
|
-
- -
|
220
|
+
- - "~>"
|
227
221
|
- !ruby/object:Gem::Version
|
228
|
-
version: 3.4.
|
222
|
+
version: 3.4.2
|
229
223
|
type: :development
|
230
224
|
prerelease: false
|
231
225
|
version_requirements: !ruby/object:Gem::Requirement
|
232
226
|
requirements:
|
233
|
-
- -
|
227
|
+
- - "~>"
|
234
228
|
- !ruby/object:Gem::Version
|
235
|
-
version: 3.4.
|
229
|
+
version: 3.4.2
|
236
230
|
- !ruby/object:Gem::Dependency
|
237
231
|
name: webidl
|
238
232
|
requirement: !ruby/object:Gem::Requirement
|
@@ -379,33 +373,30 @@ files:
|
|
379
373
|
- lib/watir/legacy_wait.rb
|
380
374
|
- lib/watir/locators.rb
|
381
375
|
- lib/watir/locators/anchor/selector_builder.rb
|
382
|
-
- lib/watir/locators/button/
|
376
|
+
- lib/watir/locators/button/matcher.rb
|
383
377
|
- lib/watir/locators/button/selector_builder.rb
|
384
378
|
- lib/watir/locators/button/selector_builder/xpath.rb
|
385
|
-
- lib/watir/locators/button/validator.rb
|
386
|
-
- lib/watir/locators/cell/locator.rb
|
387
379
|
- lib/watir/locators/cell/selector_builder.rb
|
388
380
|
- lib/watir/locators/cell/selector_builder/xpath.rb
|
389
381
|
- lib/watir/locators/element/locator.rb
|
382
|
+
- lib/watir/locators/element/matcher.rb
|
390
383
|
- lib/watir/locators/element/selector_builder.rb
|
391
384
|
- lib/watir/locators/element/selector_builder/regexp_disassembler.rb
|
392
385
|
- lib/watir/locators/element/selector_builder/xpath.rb
|
393
386
|
- lib/watir/locators/element/selector_builder/xpath_support.rb
|
394
|
-
- lib/watir/locators/element/validator.rb
|
395
|
-
- lib/watir/locators/row/locator.rb
|
396
387
|
- lib/watir/locators/row/selector_builder.rb
|
397
388
|
- lib/watir/locators/row/selector_builder/xpath.rb
|
398
389
|
- lib/watir/locators/text_area/selector_builder.rb
|
399
390
|
- lib/watir/locators/text_area/selector_builder/xpath.rb
|
400
|
-
- lib/watir/locators/text_field/
|
391
|
+
- lib/watir/locators/text_field/matcher.rb
|
401
392
|
- lib/watir/locators/text_field/selector_builder.rb
|
402
393
|
- lib/watir/locators/text_field/selector_builder/xpath.rb
|
403
|
-
- lib/watir/locators/text_field/validator.rb
|
404
394
|
- lib/watir/logger.rb
|
405
395
|
- lib/watir/navigation.rb
|
406
396
|
- lib/watir/radio_set.rb
|
407
397
|
- lib/watir/row_container.rb
|
408
398
|
- lib/watir/screenshot.rb
|
399
|
+
- lib/watir/scroll.rb
|
409
400
|
- lib/watir/user_editable.rb
|
410
401
|
- lib/watir/version.rb
|
411
402
|
- lib/watir/wait.rb
|
@@ -422,11 +413,20 @@ files:
|
|
422
413
|
- spec/implementation_spec.rb
|
423
414
|
- spec/locator_spec_helper.rb
|
424
415
|
- spec/spec_helper.rb
|
425
|
-
- spec/unit/anchor_locator_spec.rb
|
426
416
|
- spec/unit/capabilities_spec.rb
|
427
417
|
- spec/unit/container_spec.rb
|
428
418
|
- spec/unit/element_locator_spec.rb
|
429
419
|
- spec/unit/logger_spec.rb
|
420
|
+
- spec/unit/match_elements/button_spec.rb
|
421
|
+
- spec/unit/match_elements/element_spec.rb
|
422
|
+
- spec/unit/match_elements/text_field_spec.rb
|
423
|
+
- spec/unit/selector_builder/anchor_spec.rb
|
424
|
+
- spec/unit/selector_builder/button_spec.rb
|
425
|
+
- spec/unit/selector_builder/cell_spec.rb
|
426
|
+
- spec/unit/selector_builder/element_spec.rb
|
427
|
+
- spec/unit/selector_builder/row_spec.rb
|
428
|
+
- spec/unit/selector_builder/text_field_spec.rb
|
429
|
+
- spec/unit/selector_builder/textarea_spec.rb
|
430
430
|
- spec/unit/unit_helper.rb
|
431
431
|
- spec/unit/wait_spec.rb
|
432
432
|
- spec/watirspec/adjacent_spec.rb
|
@@ -577,6 +577,7 @@ files:
|
|
577
577
|
- spec/watirspec/html/obscured.html
|
578
578
|
- spec/watirspec/html/removed_element.html
|
579
579
|
- spec/watirspec/html/right_click.html
|
580
|
+
- spec/watirspec/html/scroll.html
|
580
581
|
- spec/watirspec/html/special_chars.html
|
581
582
|
- spec/watirspec/html/tables.html
|
582
583
|
- spec/watirspec/html/timeout_window_location.html
|
@@ -587,11 +588,7 @@ files:
|
|
587
588
|
- spec/watirspec/radio_set_spec.rb
|
588
589
|
- spec/watirspec/relaxed_locate_spec.rb
|
589
590
|
- spec/watirspec/screenshot_spec.rb
|
590
|
-
- spec/watirspec/
|
591
|
-
- spec/watirspec/selector_builder/cell_spec.rb
|
592
|
-
- spec/watirspec/selector_builder/element_spec.rb
|
593
|
-
- spec/watirspec/selector_builder/row_spec.rb
|
594
|
-
- spec/watirspec/selector_builder/text_spec.rb
|
591
|
+
- spec/watirspec/scroll_spec.rb
|
595
592
|
- spec/watirspec/special_chars_spec.rb
|
596
593
|
- spec/watirspec/support/rspec_matchers.rb
|
597
594
|
- spec/watirspec/user_editable_spec.rb
|
@@ -631,11 +628,20 @@ test_files:
|
|
631
628
|
- spec/implementation_spec.rb
|
632
629
|
- spec/locator_spec_helper.rb
|
633
630
|
- spec/spec_helper.rb
|
634
|
-
- spec/unit/anchor_locator_spec.rb
|
635
631
|
- spec/unit/capabilities_spec.rb
|
636
632
|
- spec/unit/container_spec.rb
|
637
633
|
- spec/unit/element_locator_spec.rb
|
638
634
|
- spec/unit/logger_spec.rb
|
635
|
+
- spec/unit/match_elements/button_spec.rb
|
636
|
+
- spec/unit/match_elements/element_spec.rb
|
637
|
+
- spec/unit/match_elements/text_field_spec.rb
|
638
|
+
- spec/unit/selector_builder/anchor_spec.rb
|
639
|
+
- spec/unit/selector_builder/button_spec.rb
|
640
|
+
- spec/unit/selector_builder/cell_spec.rb
|
641
|
+
- spec/unit/selector_builder/element_spec.rb
|
642
|
+
- spec/unit/selector_builder/row_spec.rb
|
643
|
+
- spec/unit/selector_builder/text_field_spec.rb
|
644
|
+
- spec/unit/selector_builder/textarea_spec.rb
|
639
645
|
- spec/unit/unit_helper.rb
|
640
646
|
- spec/unit/wait_spec.rb
|
641
647
|
- spec/watirspec/adjacent_spec.rb
|
@@ -786,6 +792,7 @@ test_files:
|
|
786
792
|
- spec/watirspec/html/obscured.html
|
787
793
|
- spec/watirspec/html/removed_element.html
|
788
794
|
- spec/watirspec/html/right_click.html
|
795
|
+
- spec/watirspec/html/scroll.html
|
789
796
|
- spec/watirspec/html/special_chars.html
|
790
797
|
- spec/watirspec/html/tables.html
|
791
798
|
- spec/watirspec/html/timeout_window_location.html
|
@@ -796,11 +803,7 @@ test_files:
|
|
796
803
|
- spec/watirspec/radio_set_spec.rb
|
797
804
|
- spec/watirspec/relaxed_locate_spec.rb
|
798
805
|
- spec/watirspec/screenshot_spec.rb
|
799
|
-
- spec/watirspec/
|
800
|
-
- spec/watirspec/selector_builder/cell_spec.rb
|
801
|
-
- spec/watirspec/selector_builder/element_spec.rb
|
802
|
-
- spec/watirspec/selector_builder/row_spec.rb
|
803
|
-
- spec/watirspec/selector_builder/text_spec.rb
|
806
|
+
- spec/watirspec/scroll_spec.rb
|
804
807
|
- spec/watirspec/special_chars_spec.rb
|
805
808
|
- spec/watirspec/support/rspec_matchers.rb
|
806
809
|
- spec/watirspec/user_editable_spec.rb
|
@@ -1,32 +0,0 @@
|
|
1
|
-
module Watir
|
2
|
-
module Locators
|
3
|
-
class Button
|
4
|
-
class Locator < Element::Locator
|
5
|
-
private
|
6
|
-
|
7
|
-
def using_selenium(*)
|
8
|
-
# force watir usage
|
9
|
-
end
|
10
|
-
|
11
|
-
def matches_values?(element, values_to_match)
|
12
|
-
return super unless values_to_match.key?(:value)
|
13
|
-
|
14
|
-
copy = values_to_match.dup
|
15
|
-
value = copy.delete(:value)
|
16
|
-
|
17
|
-
everything_except_value = super(element, copy)
|
18
|
-
|
19
|
-
matches_value = fetch_value(element, :value) =~ /#{value}/
|
20
|
-
matches_text = fetch_value(element, :text) =~ /#{value}/
|
21
|
-
if matches_text
|
22
|
-
Watir.logger.deprecate(':value locator key for finding button text',
|
23
|
-
'use :text locator',
|
24
|
-
ids: [:value_button])
|
25
|
-
end
|
26
|
-
|
27
|
-
everything_except_value && (matches_value || matches_text)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|