watir 6.16.5 → 6.17.0
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.
- checksums.yaml +5 -5
- data/.rubocop.yml +32 -107
- data/.travis.yml +24 -21
- data/CHANGES.md +16 -0
- data/Gemfile +3 -1
- data/Rakefile +3 -3
- data/appveyor.yml +2 -1
- data/lib/watir-webdriver.rb +1 -1
- data/lib/watir.rb +0 -1
- data/lib/watir/adjacent.rb +8 -10
- data/lib/watir/after_hooks.rb +4 -4
- data/lib/watir/browser.rb +5 -1
- data/lib/watir/capabilities.rb +9 -6
- data/lib/watir/cookies.rb +1 -1
- data/lib/watir/elements/element.rb +59 -46
- data/lib/watir/elements/file_field.rb +1 -0
- data/lib/watir/elements/iframe.rb +2 -2
- data/lib/watir/elements/link.rb +0 -9
- data/lib/watir/elements/radio.rb +1 -1
- data/lib/watir/elements/select.rb +2 -2
- data/lib/watir/generator/base/spec_extractor.rb +4 -4
- data/lib/watir/js_execution.rb +1 -1
- data/lib/watir/legacy_wait.rb +1 -1
- data/lib/watir/locators/element/selector_builder.rb +11 -12
- data/lib/watir/locators/element/selector_builder/xpath.rb +40 -13
- data/lib/watir/locators/text_field/selector_builder/xpath.rb +3 -1
- data/lib/watir/logger.rb +5 -2
- data/lib/watir/version.rb +1 -1
- data/lib/watir/window.rb +1 -1
- data/lib/watirspec.rb +1 -1
- data/lib/watirspec/guards.rb +1 -1
- data/lib/watirspec/rake_tasks.rb +2 -0
- data/lib/watirspec/runner.rb +4 -0
- data/spec/unit/container_spec.rb +1 -1
- data/spec/unit/logger_spec.rb +5 -7
- data/spec/unit/selector_builder/button_spec.rb +16 -15
- data/spec/unit/selector_builder/element_spec.rb +58 -9
- data/spec/unit/selector_builder/text_field_spec.rb +14 -14
- data/spec/watirspec/after_hooks_spec.rb +64 -78
- data/spec/watirspec/alert_spec.rb +69 -79
- data/spec/watirspec/browser_spec.rb +48 -46
- data/spec/watirspec/cookies_spec.rb +52 -37
- data/spec/watirspec/drag_and_drop_spec.rb +14 -38
- data/spec/watirspec/elements/button_spec.rb +2 -0
- data/spec/watirspec/elements/buttons_spec.rb +1 -1
- data/spec/watirspec/elements/checkbox_spec.rb +8 -4
- data/spec/watirspec/elements/date_field_spec.rb +18 -9
- data/spec/watirspec/elements/date_time_field_spec.rb +3 -4
- data/spec/watirspec/elements/div_spec.rb +62 -54
- data/spec/watirspec/elements/element_spec.rb +60 -78
- data/spec/watirspec/elements/elements_spec.rb +12 -3
- data/spec/watirspec/elements/filefield_spec.rb +25 -50
- data/spec/watirspec/elements/form_spec.rb +6 -8
- data/spec/watirspec/elements/frame_spec.rb +10 -13
- data/spec/watirspec/elements/iframe_spec.rb +17 -12
- data/spec/watirspec/elements/iframes_spec.rb +2 -2
- data/spec/watirspec/elements/link_spec.rb +18 -9
- data/spec/watirspec/elements/links_spec.rb +11 -3
- data/spec/watirspec/elements/option_spec.rb +15 -17
- data/spec/watirspec/elements/select_list_spec.rb +66 -80
- data/spec/watirspec/elements/text_field_spec.rb +8 -4
- data/spec/watirspec/elements/tr_spec.rb +0 -9
- data/spec/watirspec/html/forms_with_input_elements.html +1 -0
- data/spec/watirspec/html/iframes.html +3 -0
- data/spec/watirspec/html/non_control_elements.html +4 -4
- data/spec/watirspec/html/right_click.html +12 -0
- data/spec/watirspec/html/wait.html +1 -1
- data/spec/watirspec/relaxed_locate_spec.rb +16 -20
- data/spec/watirspec/support/rspec_matchers.rb +7 -6
- data/spec/watirspec/user_editable_spec.rb +1 -1
- data/spec/watirspec/wait_spec.rb +13 -17
- data/spec/watirspec/window_switching_spec.rb +162 -163
- data/spec/watirspec_helper.rb +7 -5
- data/watir.gemspec +4 -5
- metadata +14 -16
- data/lib/watir/elements/area.rb +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: c587621e41c1ab878d2e9ff3cfd6c5166c5df9dc66cd02c0719d492aaba48d1e
|
|
4
|
+
data.tar.gz: 509ba43afa0272d7b154eb5885e403578e2bc3956ab93803123b519093e7b430
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5215ff9fc1cfce6fa050532583167e6ed16be6f74b0d305b8d186b83361162c711ae9b63689a00882bf60d559783508ea2369ed9e8d5e25b504688eb2914db01
|
|
7
|
+
data.tar.gz: 1b0ba276ea5c83f217151c125b0f645aab7011d86d9049ea7850ea83af4fbeeb9bdfa14ca60d7205c55bee3c0d6f817143bd9f979c7dc5adc368af446367ab8a
|
data/.rubocop.yml
CHANGED
|
@@ -1,46 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
# Cop supports --auto-correct.
|
|
3
|
-
# Configuration parameters: AllowAdjacentOneLineDefs, NumberOfEmptyLines.
|
|
4
|
-
Layout/EmptyLineBetweenDefs:
|
|
5
|
-
Exclude:
|
|
6
|
-
- 'lib/watir/elements/html_elements.rb'
|
|
7
|
-
- 'lib/watir/elements/svg_elements.rb'
|
|
1
|
+
inherit_from: .rubocop_todo.yml
|
|
8
2
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
AllCops:
|
|
4
|
+
TargetRubyVersion: 2.5.8
|
|
5
|
+
NewCops: enable
|
|
12
6
|
Exclude:
|
|
13
7
|
- 'lib/watir/elements/html_elements.rb'
|
|
14
8
|
- 'lib/watir/elements/svg_elements.rb'
|
|
15
9
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# Configuration parameters: EnforcedStyle.
|
|
19
|
-
# SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
|
|
20
|
-
Layout/EmptyLinesAroundModuleBody:
|
|
21
|
-
Exclude:
|
|
22
|
-
- 'lib/watir/elements/html_elements.rb'
|
|
23
|
-
- 'lib/watir/elements/svg_elements.rb'
|
|
10
|
+
Layout/LineLength:
|
|
11
|
+
Max: 120
|
|
24
12
|
|
|
25
|
-
# Offense count: 85
|
|
26
|
-
# Cop supports --auto-correct.
|
|
27
|
-
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
|
|
28
|
-
# SupportedStyles: space, no_space, compact
|
|
29
|
-
# SupportedStylesForEmptyBraces: space, no_space
|
|
30
13
|
Layout/SpaceInsideHashLiteralBraces:
|
|
31
14
|
EnforcedStyle: no_space
|
|
32
15
|
|
|
33
|
-
# Offense count: 1
|
|
34
|
-
Lint/HandleExceptions:
|
|
35
|
-
Exclude:
|
|
36
|
-
- 'lib/watirspec.rb'
|
|
37
|
-
|
|
38
16
|
Lint/UnifiedInteger:
|
|
39
17
|
Exclude:
|
|
40
18
|
- 'lib/watir/locators/element/selector_builder.rb'
|
|
41
19
|
|
|
42
|
-
#
|
|
43
|
-
|
|
20
|
+
# Default: 17
|
|
21
|
+
Metrics/AbcSize:
|
|
22
|
+
Max: 20
|
|
23
|
+
Exclude:
|
|
24
|
+
- 'lib/watir/capabilities.rb'
|
|
25
|
+
- 'lib/watir/locators/element/selector_builder.rb'
|
|
26
|
+
- 'lib/watir/locators/element/selector_builder/regexp_disassembler.rb'
|
|
27
|
+
- 'lib/watir/locators/element/selector_builder/xpath.rb'
|
|
28
|
+
- 'lib/watir/locators/element/locator.rb'
|
|
29
|
+
- 'lib/watir/generator/base/generator.rb'
|
|
30
|
+
- 'lib/watir/generator/base/visitor.rb'
|
|
31
|
+
- 'spec/locator_spec_helper.rb'
|
|
32
|
+
- 'spec/watirspec_helper.rb'
|
|
33
|
+
|
|
44
34
|
Metrics/BlockLength:
|
|
45
35
|
Exclude:
|
|
46
36
|
- 'spec/**/*'
|
|
@@ -48,21 +38,6 @@ Metrics/BlockLength:
|
|
|
48
38
|
- 'watir.gemspec'
|
|
49
39
|
- 'Rakefile'
|
|
50
40
|
|
|
51
|
-
## Configuration parameters: CountComments.
|
|
52
|
-
Metrics/ModuleLength:
|
|
53
|
-
Exclude:
|
|
54
|
-
- 'lib/watir/elements/html_elements.rb'
|
|
55
|
-
- 'lib/watir/elements/svg_elements.rb'
|
|
56
|
-
|
|
57
|
-
# Configuration parameters: CountComments.
|
|
58
|
-
Metrics/MethodLength:
|
|
59
|
-
Max: 18
|
|
60
|
-
Exclude:
|
|
61
|
-
- 'lib/watir/locators/element/selector_builder.rb'
|
|
62
|
-
- 'lib/watir/locators/element/selector_builder/xpath.rb'
|
|
63
|
-
- 'lib/watir/locators/element/selector_builder/regexp_disassembler.rb'
|
|
64
|
-
|
|
65
|
-
# Configuration parameters: CountComments.
|
|
66
41
|
Metrics/ClassLength:
|
|
67
42
|
Max: 93
|
|
68
43
|
Exclude:
|
|
@@ -77,42 +52,24 @@ Metrics/ClassLength:
|
|
|
77
52
|
- 'lib/watir/generator/base/spec_extractor.rb'
|
|
78
53
|
- 'lib/watir/element_collection.rb'
|
|
79
54
|
|
|
80
|
-
|
|
81
|
-
Max: 10
|
|
82
|
-
|
|
55
|
+
# Default: 7
|
|
83
56
|
Metrics/CyclomaticComplexity:
|
|
84
|
-
Max:
|
|
57
|
+
Max: 9
|
|
85
58
|
Exclude:
|
|
86
|
-
|
|
59
|
+
- 'lib/watir/locators/element/selector_builder.rb'
|
|
87
60
|
|
|
88
|
-
|
|
89
|
-
|
|
61
|
+
# Configuration parameters: CountComments.
|
|
62
|
+
Metrics/MethodLength:
|
|
63
|
+
Max: 18
|
|
90
64
|
Exclude:
|
|
91
65
|
- 'lib/watir/locators/element/selector_builder.rb'
|
|
92
|
-
- 'lib/watir/locators/element/selector_builder/regexp_disassembler.rb'
|
|
93
66
|
- 'lib/watir/locators/element/selector_builder/xpath.rb'
|
|
94
|
-
- 'lib/watir/locators/element/
|
|
95
|
-
- 'lib/watir/generator/base/generator.rb'
|
|
96
|
-
- 'lib/watir/generator/base/visitor.rb'
|
|
97
|
-
- 'spec/locator_spec_helper.rb'
|
|
98
|
-
|
|
99
|
-
# TODO: fix with Watir 7
|
|
100
|
-
# Configuration parameters: CountKeywordArgs.
|
|
101
|
-
Metrics/ParameterLists:
|
|
102
|
-
Exclude:
|
|
103
|
-
- 'lib/watir/wait.rb'
|
|
67
|
+
- 'lib/watir/locators/element/selector_builder/regexp_disassembler.rb'
|
|
104
68
|
|
|
105
|
-
#
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
Max: 120
|
|
69
|
+
# Default: 8
|
|
70
|
+
Metrics/PerceivedComplexity:
|
|
71
|
+
Max: 10
|
|
109
72
|
|
|
110
|
-
# Cop supports --auto-correct.
|
|
111
|
-
# Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, IgnoredMethods.
|
|
112
|
-
# SupportedStyles: line_count_based, semantic, braces_for_chaining
|
|
113
|
-
# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
|
|
114
|
-
# FunctionalMethods: let, let!, subject, watch
|
|
115
|
-
# IgnoredMethods: lambda, proc, it
|
|
116
73
|
Style/BlockDelimiters:
|
|
117
74
|
EnforcedStyle: braces_for_chaining
|
|
118
75
|
|
|
@@ -122,44 +79,12 @@ Style/CommentedKeyword:
|
|
|
122
79
|
Style/DoubleNegation:
|
|
123
80
|
Enabled: false
|
|
124
81
|
|
|
125
|
-
## Configuration parameters: AllowedVariables.
|
|
126
82
|
Style/GlobalVars:
|
|
127
83
|
AllowedVariables:
|
|
128
84
|
- $browser
|
|
129
85
|
|
|
130
|
-
Style/
|
|
131
|
-
Exclude:
|
|
132
|
-
- 'spec/watirspec/selector_builder/element_spec.rb'
|
|
133
|
-
|
|
134
|
-
### Cop supports --auto-correct.
|
|
135
|
-
### Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
|
|
136
|
-
## SupportedStyles: single_quotes, double_quotes
|
|
137
|
-
Style/StringLiterals:
|
|
138
|
-
Exclude:
|
|
139
|
-
- 'lib/watir/elements/html_elements.rb'
|
|
140
|
-
- 'lib/watir/elements/svg_elements.rb'
|
|
141
|
-
|
|
142
|
-
Style/MethodCallWithoutArgsParentheses:
|
|
86
|
+
Style/HashEachMethods:
|
|
143
87
|
Enabled: false
|
|
144
88
|
|
|
145
|
-
|
|
146
|
-
## Configuration parameters: EnforcedStyle.
|
|
147
|
-
## SupportedStyles: annotated, template, unannotated
|
|
148
|
-
Style/FormatStringToken:
|
|
149
|
-
Exclude:
|
|
150
|
-
- 'lib/watir/browser.rb'
|
|
151
|
-
- 'lib/watir/locators/text_field/selector_builder/xpath.rb'
|
|
152
|
-
- 'lib/watir/window.rb'
|
|
153
|
-
|
|
154
|
-
Style/Documentation:
|
|
89
|
+
Style/OptionalBooleanParameter:
|
|
155
90
|
Enabled: false
|
|
156
|
-
|
|
157
|
-
# Cop supports --auto-correct.
|
|
158
|
-
# Configuration parameters: EnforcedStyle.
|
|
159
|
-
# SupportedStyles: when_needed, always, never
|
|
160
|
-
Style/FrozenStringLiteralComment:
|
|
161
|
-
Enabled: false
|
|
162
|
-
|
|
163
|
-
Naming/FileName:
|
|
164
|
-
Exclude:
|
|
165
|
-
- 'lib/watir-webdriver.rb'
|
data/.travis.yml
CHANGED
|
@@ -18,15 +18,15 @@ before_script:
|
|
|
18
18
|
script: bundle exec rake $RAKE_TASK
|
|
19
19
|
|
|
20
20
|
_version:
|
|
21
|
-
|
|
21
|
+
five: &five
|
|
22
22
|
language: ruby
|
|
23
|
-
rvm: 2.
|
|
24
|
-
|
|
23
|
+
rvm: 2.5.8
|
|
24
|
+
six: &six
|
|
25
25
|
language: ruby
|
|
26
|
-
rvm: 2.
|
|
27
|
-
|
|
26
|
+
rvm: 2.6.6
|
|
27
|
+
seven: &seven
|
|
28
28
|
language: ruby
|
|
29
|
-
rvm: 2.
|
|
29
|
+
rvm: 2.7.1
|
|
30
30
|
|
|
31
31
|
_browsers:
|
|
32
32
|
firefox: &firefox-latest
|
|
@@ -39,46 +39,49 @@ _browsers:
|
|
|
39
39
|
matrix:
|
|
40
40
|
include:
|
|
41
41
|
- env: RAKE_TASK=spec:remote_firefox
|
|
42
|
-
<<: *
|
|
42
|
+
<<: *seven
|
|
43
43
|
<<: *firefox-latest
|
|
44
44
|
- env: RAKE_TASK=spec:remote_chrome
|
|
45
|
-
<<: *
|
|
45
|
+
<<: *seven
|
|
46
46
|
<<: *chrome
|
|
47
47
|
- env: RAKE_TASK=spec:firefox RELAXED_LOCATE=false
|
|
48
|
-
<<: *
|
|
48
|
+
<<: *seven
|
|
49
49
|
<<: *firefox-latest
|
|
50
50
|
- env: RAKE_TASK=spec:firefox
|
|
51
|
-
<<: *
|
|
51
|
+
<<: *seven
|
|
52
52
|
<<: *firefox-latest
|
|
53
53
|
- env: RAKE_TASK=spec:firefox
|
|
54
|
-
<<: *
|
|
54
|
+
<<: *six
|
|
55
55
|
<<: *firefox-latest
|
|
56
56
|
- env: RAKE_TASK=spec:firefox
|
|
57
|
-
<<: *
|
|
57
|
+
<<: *five
|
|
58
58
|
<<: *firefox-latest
|
|
59
59
|
- env: RAKE_TASK=spec:chrome
|
|
60
|
-
<<: *
|
|
60
|
+
<<: *seven
|
|
61
61
|
<<: *chrome
|
|
62
62
|
- env: RAKE_TASK=spec:chrome
|
|
63
|
-
<<: *
|
|
63
|
+
<<: *six
|
|
64
64
|
<<: *chrome
|
|
65
65
|
- env: RAKE_TASK=spec:chrome
|
|
66
|
-
<<: *
|
|
66
|
+
<<: *five
|
|
67
67
|
<<: *chrome
|
|
68
68
|
- env: RAKE_TASK=spec:chrome RELAXED_LOCATE=false
|
|
69
|
-
<<: *
|
|
69
|
+
<<: *seven
|
|
70
|
+
<<: *chrome
|
|
71
|
+
- env: RAKE_TASK=spec:chrome W3C=true
|
|
72
|
+
<<: *seven
|
|
70
73
|
<<: *chrome
|
|
71
74
|
- env: RAKE_TASK=spec:chrome HEADLESS=true
|
|
72
|
-
<<: *
|
|
75
|
+
<<: *seven
|
|
73
76
|
<<: *chrome
|
|
74
77
|
- env: RAKE_TASK=spec:unit
|
|
75
|
-
<<: *
|
|
78
|
+
<<: *seven
|
|
76
79
|
- env: RAKE_TASK=spec:stats
|
|
77
|
-
<<: *
|
|
80
|
+
<<: *seven
|
|
78
81
|
<<: *chrome
|
|
79
82
|
- env: RAKE_TASK=yard:doctest
|
|
80
|
-
<<: *
|
|
83
|
+
<<: *seven
|
|
81
84
|
<<: *chrome
|
|
82
85
|
- env: RAKE_TASK=rubocop
|
|
83
|
-
<<: *
|
|
86
|
+
<<: *five
|
|
84
87
|
<<: *chrome
|
data/CHANGES.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
### 6.17.0 (2020-08-27)
|
|
2
|
+
* Require Ruby > 2.5
|
|
3
|
+
* Implement Logger#selenium= to set selenium level from Watir
|
|
4
|
+
* Implement FileField#upload
|
|
5
|
+
* Fix bug with staleness handling in #exist and #present? (#853 & #852)
|
|
6
|
+
* Fix bug when locating elements by text with RegExp (#866 #871)
|
|
7
|
+
* Implement modifiers for `Element#right_click` (thanks Lakshya Kapoor #861)
|
|
8
|
+
* Updated locator code to adhere to spec on what attributes are case sensitive (#507 #856)
|
|
9
|
+
* Fix locating bug when iframe is nested under another element (thanks Matthew Mazaika #885 #886)
|
|
10
|
+
* Deprecate Element#scroll_into_view in favor of the new Scroll methods (#884)
|
|
11
|
+
* Fix threading bugs by allowing each Browser instance its own Timer (#881)
|
|
12
|
+
* Allow adjacent locators to return Input subtype when applicable (#878)
|
|
13
|
+
* Removed unnecessary reference to rubyforge (thanks olleolleolle #874)
|
|
14
|
+
* Removed deprecated Selenium classes (thanks joesho112358 #867)
|
|
15
|
+
* Add support for :service parameter for initializing Browser
|
|
16
|
+
|
|
1
17
|
### 6.16.5 (2018-12-25)
|
|
2
18
|
|
|
3
19
|
* Fix bug with nested elements using scopes (#842)
|
data/Gemfile
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
source '
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
gem 'webidl', path: File.expand_path('../webidl') if ENV['LOCAL_WEBIDL']
|
|
4
4
|
|
|
5
5
|
gem 'selenium-webdriver', path: File.expand_path('../selenium/build/rb') if ENV['LOCAL_SELENIUM']
|
|
6
6
|
|
|
7
|
+
gem 'ffi' if Gem.win_platform? # For selenium-webdriver on Windows
|
|
8
|
+
|
|
7
9
|
# Specify your gem's dependencies in watir.gemspec
|
|
8
10
|
gemspec
|
data/Rakefile
CHANGED
|
@@ -61,7 +61,7 @@ end
|
|
|
61
61
|
|
|
62
62
|
if extractor.errors.any?
|
|
63
63
|
puts "\n\n<======================= ERRORS =======================>\n\n"
|
|
64
|
-
puts extractor.errors.join("\n
|
|
64
|
+
puts extractor.errors.join("\n#{'=' * 80}\n")
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
67
|
|
|
@@ -93,7 +93,7 @@ YARD::Rake::YardocTask.new do |task|
|
|
|
93
93
|
task.options = %w[--debug] # this is pretty slow, so nice with some output
|
|
94
94
|
end
|
|
95
95
|
|
|
96
|
-
require 'yard
|
|
96
|
+
require 'yard/doctest/rake'
|
|
97
97
|
YARD::Doctest::RakeTask.new do |task|
|
|
98
98
|
task.doctest_opts = ['-v']
|
|
99
99
|
end
|
|
@@ -115,7 +115,7 @@ namespace :changes do
|
|
|
115
115
|
|
|
116
116
|
desc 'Print latest diff'
|
|
117
117
|
task print: :differ do
|
|
118
|
-
VersionDiffer.new.print_latest(
|
|
118
|
+
VersionDiffer.new.print_latest($stdout)
|
|
119
119
|
end
|
|
120
120
|
end
|
|
121
121
|
|
data/appveyor.yml
CHANGED
data/lib/watir-webdriver.rb
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
require 'watir'
|
|
2
|
-
warn Kernel.caller.first
|
|
2
|
+
warn "#{Kernel.caller.first}: `require 'watir-webdriver'` is deprecated. Please, use `require 'watir'`."
|
data/lib/watir.rb
CHANGED
|
@@ -114,7 +114,6 @@ require 'watir/elements/element'
|
|
|
114
114
|
require 'watir/elements/html_elements'
|
|
115
115
|
require 'watir/elements/svg_elements'
|
|
116
116
|
|
|
117
|
-
require 'watir/elements/area'
|
|
118
117
|
require 'watir/elements/button'
|
|
119
118
|
require 'watir/elements/cell'
|
|
120
119
|
require 'watir/elements/checkbox'
|
data/lib/watir/adjacent.rb
CHANGED
|
@@ -113,16 +113,14 @@ module Watir
|
|
|
113
113
|
def xpath_adjacent(opt = {})
|
|
114
114
|
plural = opt.delete(:plural)
|
|
115
115
|
opt[:index] ||= 0 unless plural || opt.values.any? { |e| e.is_a? Regexp }
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
end
|
|
125
|
-
klass.new(self, opt)
|
|
116
|
+
if !plural
|
|
117
|
+
el = Watir.element_class_for(opt[:tag_name] || '').new(self, opt)
|
|
118
|
+
el.is_a?(Input) ? el.to_subtype : el
|
|
119
|
+
elsif opt[:tag_name]
|
|
120
|
+
Object.const_get("#{Watir.element_class_for(opt[:tag_name])}Collection").new(self, opt)
|
|
121
|
+
else
|
|
122
|
+
HTMLElementCollection.new(self, opt)
|
|
123
|
+
end
|
|
126
124
|
end
|
|
127
125
|
end # Adjacent
|
|
128
126
|
end # Watir
|
data/lib/watir/after_hooks.rb
CHANGED
|
@@ -69,8 +69,8 @@ module Watir
|
|
|
69
69
|
return unless @after_hooks.any? && !@browser.alert.exists?
|
|
70
70
|
|
|
71
71
|
each { |after_hook| after_hook.call(@browser) }
|
|
72
|
-
rescue Selenium::WebDriver::Error::NoSuchWindowError =>
|
|
73
|
-
Watir.logger.info "Could not execute After Hooks because browser window was closed #{
|
|
72
|
+
rescue Selenium::WebDriver::Error::NoSuchWindowError => e
|
|
73
|
+
Watir.logger.info "Could not execute After Hooks because browser window was closed #{e}"
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
#
|
|
@@ -99,8 +99,8 @@ module Watir
|
|
|
99
99
|
# @yieldparam [#call] after_hook Object responding to call
|
|
100
100
|
#
|
|
101
101
|
|
|
102
|
-
def each
|
|
103
|
-
@after_hooks.each { |after_hook|
|
|
102
|
+
def each(&blk)
|
|
103
|
+
@after_hooks.each { |after_hook| blk.call(after_hook) }
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
#
|
data/lib/watir/browser.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Watir
|
|
|
11
11
|
include Exception
|
|
12
12
|
include Scrolling
|
|
13
13
|
|
|
14
|
-
attr_writer :default_context, :original_window, :locator_namespace
|
|
14
|
+
attr_writer :default_context, :original_window, :locator_namespace, :timer
|
|
15
15
|
attr_reader :driver, :after_hooks
|
|
16
16
|
alias wd driver # ensures duck typing with Watir::Element
|
|
17
17
|
|
|
@@ -300,6 +300,10 @@ module Watir
|
|
|
300
300
|
end
|
|
301
301
|
end
|
|
302
302
|
|
|
303
|
+
def timer
|
|
304
|
+
@timer ||= Wait::Timer.new
|
|
305
|
+
end
|
|
306
|
+
|
|
303
307
|
private
|
|
304
308
|
|
|
305
309
|
def wrap_element(scope, element)
|
data/lib/watir/capabilities.rb
CHANGED
|
@@ -25,7 +25,11 @@ module Watir
|
|
|
25
25
|
|
|
26
26
|
def process_arguments
|
|
27
27
|
url = @options.delete(:url)
|
|
28
|
-
|
|
28
|
+
if url
|
|
29
|
+
@selenium_opts[:url] = url
|
|
30
|
+
elsif @options.key?(:service)
|
|
31
|
+
@selenium_opts[:service] = options.delete(:service)
|
|
32
|
+
end
|
|
29
33
|
|
|
30
34
|
create_http_client
|
|
31
35
|
|
|
@@ -63,7 +67,6 @@ module Watir
|
|
|
63
67
|
end
|
|
64
68
|
|
|
65
69
|
# TODO: - this will get addressed with Capabilities Update
|
|
66
|
-
# rubocop:disable Metrics/AbcSize
|
|
67
70
|
# rubocop:disable Metrics/MethodLength
|
|
68
71
|
# rubocop:disable Metrics/PerceivedComplexity:
|
|
69
72
|
# rubocop:disable Metrics/CyclomaticComplexity::
|
|
@@ -82,7 +85,7 @@ module Watir
|
|
|
82
85
|
browser_options[:args] += ['--headless', '--disable-gpu']
|
|
83
86
|
end
|
|
84
87
|
@selenium_opts[:options] = browser_options if browser_options.is_a? Selenium::WebDriver::Chrome::Options
|
|
85
|
-
@selenium_opts[:options] ||= Selenium::WebDriver::Chrome::Options.new(browser_options)
|
|
88
|
+
@selenium_opts[:options] ||= Selenium::WebDriver::Chrome::Options.new(**browser_options)
|
|
86
89
|
when :firefox
|
|
87
90
|
profile = @options.delete(:profile)
|
|
88
91
|
if browser_options.is_a? Selenium::WebDriver::Firefox::Options
|
|
@@ -97,7 +100,7 @@ module Watir
|
|
|
97
100
|
browser_options[:args] ||= []
|
|
98
101
|
browser_options[:args] += ['--headless']
|
|
99
102
|
end
|
|
100
|
-
@selenium_opts[:options] ||= Selenium::WebDriver::Firefox::Options.new(browser_options)
|
|
103
|
+
@selenium_opts[:options] ||= Selenium::WebDriver::Firefox::Options.new(**browser_options)
|
|
101
104
|
@selenium_opts[:options].profile = profile if profile
|
|
102
105
|
when :safari
|
|
103
106
|
Selenium::WebDriver::Safari.technology_preview! if @options.delete(:technology_preview)
|
|
@@ -120,13 +123,13 @@ module Watir
|
|
|
120
123
|
end
|
|
121
124
|
unless browser_options.is_a? Selenium::WebDriver::IE::Options
|
|
122
125
|
ie_caps = browser_options.select { |k| Selenium::WebDriver::IE::Options::CAPABILITIES.include?(k) }
|
|
123
|
-
browser_options = Selenium::WebDriver::IE::Options.new(browser_options)
|
|
126
|
+
browser_options = Selenium::WebDriver::IE::Options.new(**browser_options)
|
|
124
127
|
ie_caps.each { |k, v| browser_options.add_option(k, v) }
|
|
125
128
|
end
|
|
126
129
|
@selenium_opts[:options] = browser_options
|
|
127
130
|
end
|
|
128
131
|
end
|
|
129
|
-
|
|
132
|
+
|
|
130
133
|
# rubocop:enable Metrics/MethodLength
|
|
131
134
|
# rubocop:enable Metrics/PerceivedComplexity:
|
|
132
135
|
# rubocop:enable Metrics/CyclomaticComplexity::
|