watir 6.19.1 → 7.0.0.beta1

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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.github/actions/install-chrome/action.yml +1 -0
  3. data/.github/actions/setup-linux/action.yml +8 -0
  4. data/.github/workflows/tests.yml +100 -0
  5. data/CHANGES.md +7 -0
  6. data/README.md +1 -4
  7. data/Rakefile +1 -1
  8. data/lib/watir.rb +1 -45
  9. data/lib/watir/alert.rb +3 -8
  10. data/lib/watir/capabilities.rb +54 -230
  11. data/lib/watir/cell_container.rb +4 -4
  12. data/lib/watir/container.rb +4 -26
  13. data/lib/watir/elements/checkbox.rb +4 -4
  14. data/lib/watir/elements/date_field.rb +4 -4
  15. data/lib/watir/elements/date_time_field.rb +4 -4
  16. data/lib/watir/elements/element.rb +12 -49
  17. data/lib/watir/elements/file_field.rb +4 -4
  18. data/lib/watir/elements/font.rb +4 -4
  19. data/lib/watir/elements/hidden.rb +4 -4
  20. data/lib/watir/elements/html_elements.rb +444 -445
  21. data/lib/watir/elements/iframe.rb +4 -4
  22. data/lib/watir/elements/radio.rb +4 -4
  23. data/lib/watir/elements/select.rb +12 -78
  24. data/lib/watir/elements/svg_elements.rb +96 -96
  25. data/lib/watir/elements/text_field.rb +4 -4
  26. data/lib/watir/generator/base/generator.rb +4 -4
  27. data/lib/watir/generator/base/visitor.rb +0 -29
  28. data/lib/watir/generator/html/generator.rb +2 -1
  29. data/lib/watir/has_window.rb +4 -4
  30. data/lib/watir/http_client.rb +0 -8
  31. data/lib/watir/locators.rb +1 -5
  32. data/lib/watir/locators/button/matcher.rb +0 -23
  33. data/lib/watir/locators/button/selector_builder/xpath.rb +4 -15
  34. data/lib/watir/locators/element/matcher.rb +4 -19
  35. data/lib/watir/locators/element/selector_builder.rb +2 -37
  36. data/lib/watir/locators/element/selector_builder/xpath.rb +26 -41
  37. data/lib/watir/radio_set.rb +2 -2
  38. data/lib/watir/row_container.rb +4 -4
  39. data/lib/watir/version.rb +1 -1
  40. data/lib/watir/wait.rb +4 -74
  41. data/lib/watir/window.rb +6 -22
  42. data/lib/watir/window_collection.rb +5 -49
  43. data/lib/watirspec/implementation.rb +4 -0
  44. data/spec/spec_helper.rb +2 -7
  45. data/spec/unit/capabilities_spec.rb +196 -929
  46. data/spec/unit/match_elements/button_spec.rb +0 -13
  47. data/spec/unit/match_elements/element_spec.rb +38 -47
  48. data/spec/unit/match_elements/text_field_spec.rb +6 -6
  49. data/spec/unit/selector_builder/element_spec.rb +6 -23
  50. data/spec/unit/selector_builder/text_field_spec.rb +6 -7
  51. data/spec/watirspec/alert_spec.rb +4 -21
  52. data/spec/watirspec/browser_spec.rb +2 -2
  53. data/spec/watirspec/cookies_spec.rb +1 -1
  54. data/spec/watirspec/elements/button_spec.rb +0 -10
  55. data/spec/watirspec/elements/checkbox_spec.rb +10 -22
  56. data/spec/watirspec/elements/div_spec.rb +4 -34
  57. data/spec/watirspec/elements/divs_spec.rb +2 -2
  58. data/spec/watirspec/elements/element_spec.rb +38 -84
  59. data/spec/watirspec/elements/form_spec.rb +2 -4
  60. data/spec/watirspec/elements/links_spec.rb +4 -4
  61. data/spec/watirspec/elements/select_list_spec.rb +7 -108
  62. data/spec/watirspec/elements/span_spec.rb +2 -2
  63. data/spec/watirspec/elements/spans_spec.rb +1 -1
  64. data/spec/watirspec/elements/strong_spec.rb +1 -1
  65. data/spec/watirspec/html/non_control_elements.html +8 -3
  66. data/spec/watirspec/support/rspec_matchers.rb +1 -32
  67. data/spec/watirspec/window_switching_spec.rb +2 -49
  68. data/spec/watirspec_helper.rb +6 -1
  69. data/watir.gemspec +3 -4
  70. metadata +11 -32
  71. data/.github/workflows/linux.yml +0 -61
  72. data/.github/workflows/mac.yml +0 -55
  73. data/.github/workflows/unit.yml +0 -37
  74. data/.github/workflows/windows.yml +0 -39
  75. data/lib/watir/legacy_wait.rb +0 -123
  76. data/spec/unit/container_spec.rb +0 -35
  77. data/spec/watirspec/legacy_wait_spec.rb +0 -216
@@ -16,19 +16,6 @@ describe Watir::Locators::Button::Matcher do
16
16
  expect(matcher.match(elements, values_to_match, :all)).to eq [elements[2]]
17
17
  end
18
18
 
19
- it 'value attribute matches text' do
20
- elements = [wd_element(text: 'foo', attributes: {value: 'foo'}),
21
- wd_element(text: 'bar', attributes: {value: 'bar'}),
22
- wd_element(text: 'foobar')]
23
- values_to_match = {value: 'foobar'}
24
-
25
- expect(elements[2]).not_to receive(:attribute)
26
-
27
- expect {
28
- expect(matcher.match(elements, values_to_match, :all)).to eq [elements[2]]
29
- }.to have_deprecated_value_button
30
- end
31
-
32
19
  it 'returns empty array if neither value nor text match' do
33
20
  elements = [wd_element(text: 'foo', attributes: {value: 'foo'}),
34
21
  wd_element(text: 'bar', attributes: {value: 'bar'}),
@@ -14,9 +14,11 @@ describe Watir::Locators::Element::Matcher do
14
14
  wd_element(tag_name: 'input', attributes: {id: 'bfoo_id'}),
15
15
  wd_element(tag_name: 'input', attributes: {id: 'foo_id'})]
16
16
 
17
- label_wds = [wd_element(tag_name: 'label', text: 'foob'),
18
- wd_element(tag_name: 'label', text: 'bfoo'),
19
- wd_element(tag_name: 'label', text: 'foo')]
17
+ label_wds = [wd_element(tag_name: 'label'),
18
+ wd_element(tag_name: 'label'),
19
+ wd_element(tag_name: 'label')]
20
+
21
+ allow(browser).to receive(:execute_script).and_return('foob', 'Foo', 'foo')
20
22
 
21
23
  labels = [element(watir_element: Watir::Label, wd: label_wds[0], for: 'foob_id'),
22
24
  element(watir_element: Watir::Label, wd: label_wds[1], for: 'bfoo_id'),
@@ -27,7 +29,6 @@ describe Watir::Locators::Element::Matcher do
27
29
  expect(labels[1]).not_to receive(:for)
28
30
 
29
31
  allow(query_scope).to receive(:labels).and_return(labels)
30
- allow(matcher).to receive(:deprecate_text_regexp).exactly(3).times
31
32
  allow_any_instance_of(Watir::Input).to receive(:wd).and_return(input_wds[2], input_wds[2])
32
33
 
33
34
  values_to_match = {label_element: 'foo'}
@@ -44,9 +45,11 @@ describe Watir::Locators::Element::Matcher do
44
45
  element(watir_element: Watir::Input, wd: input_wds[1]),
45
46
  element(watir_element: Watir::Input, wd: input_wds[2])]
46
47
 
47
- label_wds = [wd_element(tag_name: 'label', text: 'foob'),
48
- wd_element(tag_name: 'label', text: 'Foo'),
49
- wd_element(tag_name: 'label', text: 'foo')]
48
+ label_wds = [wd_element(tag_name: 'label'),
49
+ wd_element(tag_name: 'label'),
50
+ wd_element(tag_name: 'label')]
51
+
52
+ allow(browser).to receive(:execute_script).and_return('foob', 'Foo', 'foo')
50
53
 
51
54
  labels = [element(watir_element: Watir::Label, wd: label_wds[0], for: '', input: inputs[0]),
52
55
  element(watir_element: Watir::Label, wd: label_wds[1], for: '', input: inputs[1]),
@@ -57,7 +60,6 @@ describe Watir::Locators::Element::Matcher do
57
60
  expect(labels[1]).not_to receive(:for)
58
61
 
59
62
  allow(query_scope).to receive(:labels).and_return(labels)
60
- allow(matcher).to receive(:deprecate_text_regexp).exactly(3).times
61
63
 
62
64
  values_to_match = {label_element: 'foo'}
63
65
 
@@ -71,14 +73,16 @@ describe Watir::Locators::Element::Matcher do
71
73
  inputs = [element(watir_element: Watir::Input, wd: wd_element(tag_name: 'input')),
72
74
  element(watir_element: Watir::Input, wd: input_wds[1])]
73
75
 
74
- label_wds = [wd_element(tag_name: 'label', text: 'foo'),
75
- wd_element(tag_name: 'label', text: 'foo')]
76
+ label_wds = [wd_element(tag_name: 'label'),
77
+ wd_element(tag_name: 'label'),
78
+ wd_element(tag_name: 'label')]
79
+
80
+ allow(browser).to receive(:execute_script).and_return('foo', 'foo')
76
81
 
77
82
  labels = [element(watir_element: Watir::Label, wd: label_wds[0], for: '', input: inputs[0]),
78
83
  element(watir_element: Watir::Label, wd: label_wds[1], for: '', input: inputs[1])]
79
84
 
80
85
  allow(query_scope).to receive(:labels).and_return(labels)
81
- allow(matcher).to receive(:deprecate_text_regexp).exactly(2).times
82
86
 
83
87
  values_to_match = {label_element: 'foo'}
84
88
 
@@ -89,14 +93,16 @@ describe Watir::Locators::Element::Matcher do
89
93
  input_wds = [wd_element(tag_name: 'input', attributes: {id: 'foo'}),
90
94
  wd_element(tag_name: 'input', attributes: {id: 'bfoo'})]
91
95
 
92
- label_wds = [wd_element(tag_name: 'label', text: 'Not this'),
93
- wd_element(tag_name: 'label', text: 'Or This')]
96
+ label_wds = [wd_element(tag_name: 'label'),
97
+ wd_element(tag_name: 'label'),
98
+ wd_element(tag_name: 'label')]
99
+
100
+ allow(browser).to receive(:execute_script).and_return('Not this', 'or this')
94
101
 
95
102
  labels = [element(watir_element: Watir::Label, wd: label_wds[0], for: 'foo'),
96
103
  element(watir_element: Watir::Label, wd: label_wds[1], for: 'bfoo')]
97
104
 
98
105
  allow(query_scope).to receive(:labels).and_return(labels)
99
- allow(matcher).to receive(:deprecate_text_regexp).exactly(2).times
100
106
 
101
107
  values_to_match = {label_element: 'foo'}
102
108
 
@@ -110,14 +116,15 @@ describe Watir::Locators::Element::Matcher do
110
116
  inputs = [element(watir_element: Watir::Input, wd: wd_element(tag_name: 'input')),
111
117
  element(watir_element: Watir::Input, wd: wd_element(tag_name: 'input'))]
112
118
 
113
- label_wds = [wd_element(tag_name: 'label', text: 'foob'),
114
- wd_element(tag_name: 'label', text: 'foo')]
119
+ label_wds = [wd_element(tag_name: 'label'),
120
+ wd_element(tag_name: 'label')]
121
+
122
+ allow(browser).to receive(:execute_script).and_return('foob', 'foo')
115
123
 
116
124
  labels = [element(watir_element: Watir::Label, wd: label_wds[0], for: '', input: inputs[0]),
117
125
  element(watir_element: Watir::Label, wd: label_wds[1], for: '', input: inputs[1])]
118
126
 
119
127
  allow(query_scope).to receive(:labels).and_return(labels)
120
- allow(matcher).to receive(:deprecate_text_regexp).exactly(2).times
121
128
 
122
129
  values_to_match = {label_element: 'foo'}
123
130
 
@@ -191,11 +198,10 @@ describe Watir::Locators::Element::Matcher do
191
198
  end
192
199
 
193
200
  it 'by text' do
194
- elements = [wd_element(text: 'foo'),
195
- wd_element(text: 'Foob')]
201
+ elements = [wd_element, wd_element]
196
202
  @values_to_match = {text: 'Foob'}
197
203
 
198
- allow(matcher).to receive(:deprecate_text_regexp).exactly(3).times
204
+ allow(browser).to receive(:execute_script).and_return('foo', 'Foob')
199
205
 
200
206
  expect(matcher.match(elements, values_to_match, @filter)).to eq elements[1]
201
207
  end
@@ -290,12 +296,10 @@ describe Watir::Locators::Element::Matcher do
290
296
  end
291
297
 
292
298
  it 'by text' do
293
- elements = [wd_element(text: 'foo'),
294
- wd_element(text: 'Foob'),
295
- wd_element(text: 'bBarb')]
299
+ elements = [wd_element, wd_element, wd_element]
296
300
  @values_to_match = {text: /Foo|Bar/}
297
301
 
298
- allow(matcher).to receive(:deprecate_text_regexp).exactly(3).times
302
+ allow(browser).to receive(:execute_script).and_return('foo', 'Foob', 'bBarb')
299
303
 
300
304
  expect(matcher.match(elements, values_to_match, @filter)).to eq [elements[1], elements[2]]
301
305
  end
@@ -369,55 +373,42 @@ describe Watir::Locators::Element::Matcher do
369
373
  # See equivalent tests in checkbox_spec
370
374
  context 'text_regexp deprecations' do
371
375
  let(:filter) { :first }
372
- let(:elements) do
373
- [wd_element(text: 'all visible'),
374
- wd_element(text: 'some visible')]
375
- end
376
+ let(:elements) { [wd_element, wd_element] }
376
377
 
377
378
  it 'not thrown when still matched by text content' do
378
379
  @values_to_match = {text: /some visible/}
379
- allow(browser).to receive(:execute_script).and_return('some visible some hidden')
380
- allow(browser).to receive(:timer).and_return(Watir::Wait::Timer.new)
381
- allow(browser).to receive(:timer=).and_return(Watir::Wait::Timer.new)
380
+ allow(browser).to receive(:execute_script).and_return('all visible', 'some visible')
382
381
 
383
- expect {
384
- expect(matcher.match(elements, values_to_match, filter)).to eq elements[1]
385
- }.not_to have_deprecated_text_regexp
382
+ expect(matcher.match(elements, values_to_match, filter)).to eq elements[1]
386
383
  end
387
384
 
388
385
  it 'not thrown with complex regexp matched by text content' do
389
386
  @values_to_match = {text: /some (in|)visible/}
390
- allow(browser).to receive(:execute_script).and_return('some visible some hidden')
391
- allow(browser).to receive(:timer).and_return(Watir::Wait::Timer.new)
392
- allow(browser).to receive(:timer=).and_return(Watir::Wait::Timer.new)
387
+ allow(browser).to receive(:execute_script).and_return('all visible', 'some visible')
393
388
 
394
- expect {
395
- expect(matcher.match(elements, values_to_match, filter)).to eq elements[1]
396
- }.not_to have_deprecated_text_regexp
389
+ expect(matcher.match(elements, values_to_match, filter)).to eq elements[1]
397
390
  end
398
391
 
399
392
  it 'thrown when no longer matched by text content' do
400
393
  @values_to_match = {text: /some visible$/}
401
- allow(browser).to receive(:execute_script).and_return('some visible some hidden')
394
+ allow(browser).to receive(:execute_script).and_return('all visible', 'some visible')
402
395
  allow(browser).to receive(:timer).and_return(Watir::Wait::Timer.new)
403
396
  allow(browser).to receive(:timer=).and_return(Watir::Wait::Timer.new)
404
397
 
405
- expect {
406
- expect(matcher.match(elements, values_to_match, filter)).to eq elements[1]
407
- }.to have_deprecated_text_regexp
398
+ expect(matcher.match(elements, values_to_match, filter)).to eq elements[1]
408
399
  end
409
400
 
410
401
  it 'not thrown when element does not exist' do
411
402
  @values_to_match = {text: /definitely not there/}
403
+ allow(browser).to receive(:execute_script).and_return('all visible', 'some visible')
412
404
 
413
- expect {
414
- expect(matcher.match(elements, values_to_match, filter)).to eq elements[1]
415
- }.to_not have_deprecated_text_regexp
405
+ expect(matcher.match(elements, values_to_match, filter)).to eq nil
416
406
  end
417
407
 
418
408
  # Note: This will work after:text_regexp deprecation removed
419
409
  it 'keeps element from being located' do
420
410
  @values_to_match = {text: /some visible some hidden/}
411
+ allow(browser).to receive(:execute_script).and_return('all visible', 'some visible')
421
412
 
422
413
  expect(matcher.match(elements, values_to_match, filter)).to be_nil
423
414
  end
@@ -44,25 +44,25 @@ describe Watir::Locators::TextField::Matcher do
44
44
 
45
45
  context 'when label element' do
46
46
  it 'converts value to text' do
47
- elements = [wd_element(tag_name: 'label', text: 'foo'),
48
- wd_element(tag_name: 'label', text: 'Foob')]
47
+ elements = [wd_element(tag_name: 'label'),
48
+ wd_element(tag_name: 'label')]
49
49
  values_to_match = {value: 'Foob'}
50
50
 
51
+ allow(query_scope).to receive(:execute_script).and_return('foo', 'Foob')
51
52
  expect(elements[0]).not_to receive(:attribute).with(values_to_match)
52
53
  expect(elements[1]).not_to receive(:attribute).with(values_to_match)
53
- allow(matcher).to receive(:deprecate_text_regexp).exactly(2).times
54
54
 
55
55
  expect(matcher.match(elements, values_to_match, :all)).to eq [elements[1]]
56
56
  end
57
57
 
58
58
  it 'converts label to text' do
59
- elements = [wd_element(tag_name: 'label', text: 'foo'),
60
- wd_element(tag_name: 'label', text: 'Foob')]
59
+ elements = [wd_element(tag_name: 'label'),
60
+ wd_element(tag_name: 'label')]
61
61
  values_to_match = {label: 'Foob'}
62
62
 
63
+ allow(query_scope).to receive(:execute_script).and_return('foo', 'Foob')
63
64
  expect(elements[0]).not_to receive(:attribute).with(values_to_match)
64
65
  expect(elements[1]).not_to receive(:attribute).with(values_to_match)
65
- allow(matcher).to receive(:deprecate_text_regexp).exactly(2).times
66
66
 
67
67
  expect(matcher.match(elements, values_to_match, :all)).to eq [elements[1]]
68
68
  end
@@ -95,15 +95,6 @@ describe Watir::Locators::Element::SelectorBuilder do
95
95
  expect(selector_builder.build(selector)).to eq built
96
96
  end
97
97
 
98
- it 'values with spaces' do
99
- selector = {class_name: 'multiple classes here'}
100
- built = {xpath: ".//*[contains(concat(' ', @class, ' '), ' multiple classes here ')]"}
101
-
102
- expect {
103
- expect(selector_builder.build(selector)).to eq built
104
- }.to have_deprecated_class_array
105
- end
106
-
107
98
  it 'single String concatenates' do
108
99
  selector = {class: 'user'}
109
100
  built = {xpath: ".//*[contains(concat(' ', @class, ' '), ' user ')]"}
@@ -281,13 +272,11 @@ describe Watir::Locators::Element::SelectorBuilder do
281
272
  expect(selector_builder.build(selector)).to eq built
282
273
  end
283
274
 
284
- it 'with caption attribute' do
285
- selector = {caption: 'Add user'}
286
- built = {xpath: ".//*[normalize-space()='Add user']"}
275
+ it 'Regexp uses contains normalize space' do
276
+ selector = {text: /Add/}
277
+ built = {xpath: ".//*[contains(normalize-space(), 'Add')]"}
287
278
 
288
- expect {
289
- expect(selector_builder.build(selector)).to eq built
290
- }.to have_deprecated_caption
279
+ expect(selector_builder.build(selector)).to eq built
291
280
  end
292
281
 
293
282
  it 'raises exception when text is not a String or Regexp' do
@@ -346,7 +335,8 @@ describe Watir::Locators::Element::SelectorBuilder do
346
335
 
347
336
  it 'returns a label_element if complex' do
348
337
  selector = {label: /Ca|rs/}
349
- built = {xpath: './/*', label_element: /Ca|rs/}
338
+ xpath = './/*[@id=//label[normalize-space()]/@for or parent::label[normalize-space()]]'
339
+ built = {xpath: xpath, label_element: /Ca|rs/}
350
340
 
351
341
  expect(selector_builder.build(selector)).to eq built
352
342
  end
@@ -628,13 +618,6 @@ describe Watir::Locators::Element::SelectorBuilder do
628
618
  expect(selector_builder.build(selector)).to eq built
629
619
  end
630
620
 
631
- it 'text with any Regexp' do
632
- selector = {text: /Add/}
633
- built = {xpath: './/*', text: /Add/}
634
-
635
- expect(selector_builder.build(selector)).to eq built
636
- end
637
-
638
621
  it 'visible' do
639
622
  selector = {tag_name: 'div', visible: true}
640
623
  built = {xpath: ".//*[local-name()='div']", visible: true}
@@ -156,21 +156,20 @@ describe Watir::Locators::TextField::SelectorBuilder do
156
156
  expect(selector_builder.build(selector)).to eq built
157
157
  end
158
158
 
159
- # TODO: Can use contains once remove :text_regexp deprecation
160
- xit 'using simple Regexp' do
159
+ it 'using simple Regexp' do
161
160
  selector = {label: /First/}
162
161
  built = {xpath: ".//*[local-name()='input'][not(@type) or (#{negative_types})]" \
163
- "[@id=//label[contains(text(), 'First')]/@for or parent::label[contains(text(), 'First')]]"}
162
+ "[@id=//label[contains(normalize-space(), 'First')]/@for or parent::label[contains(normalize-space(), 'First')]]"}
164
163
 
165
164
  expect(selector_builder.build(selector)).to eq built
166
165
  end
167
166
 
168
- # TODO: Can use contains once remove :text_regexp deprecation
169
- xit 'using complex Regexp' do
167
+ it 'using complex Regexp' do
170
168
  selector = {label: /([qa])st? name/}
171
169
  built = {xpath: ".//*[local-name()='input'][not(@type) or (#{negative_types})]" \
172
- "[@id=//label[contains(text(), 's') and contains(text(), ' name')]/@for or " \
173
- "parent::label[contains(text(), 's') and contains(text(), ' name')]]", label_element: /([qa])st? name/}
170
+ "[@id=//label[contains(normalize-space(), 's') and contains(normalize-space(), ' name')]/@for or " \
171
+ "parent::label[contains(normalize-space(), 's') and contains(normalize-space(), ' name')]]",
172
+ label_element: /([qa])st? name/}
174
173
 
175
174
  expect(selector_builder.build(selector)).to eq built
176
175
  end
@@ -9,12 +9,10 @@ describe 'Alert API' do
9
9
  browser.alert.ok if browser.alert.exists?
10
10
  end
11
11
 
12
- compliant_on :relaxed_locate do
13
- context 'Relaxed Waits' do
14
- context 'when acting on an alert' do
15
- it 'raises exception after timing out' do
16
- expect { browser.alert.text }.to wait_and_raise_unknown_object_exception
17
- end
12
+ context 'Waits' do
13
+ context 'when acting on an alert' do
14
+ it 'raises exception after timing out' do
15
+ expect { browser.alert.text }.to wait_and_raise_unknown_object_exception
18
16
  end
19
17
  end
20
18
  end
@@ -53,21 +51,6 @@ describe 'Alert API' do
53
51
  expect(browser.alert).to_not exist
54
52
  end
55
53
  end
56
-
57
- not_compliant_on :relaxed_locate do
58
- describe 'wait_until_present' do
59
- it 'waits until alert is present and goes on' do
60
- browser.button(id: 'timeout-alert').click
61
- browser.alert.wait_until_present.ok
62
-
63
- expect(browser.alert).to_not exist
64
- end
65
-
66
- it 'raises error if alert is not present after timeout' do
67
- expect { browser.alert.wait_until_present.ok }.to raise_timeout_exception
68
- end
69
- end
70
- end
71
54
  end
72
55
 
73
56
  context 'confirm' do
@@ -75,7 +75,7 @@ describe 'Browser' do
75
75
  bug 'Capitalization issue', :safari do
76
76
  describe '#name' do
77
77
  it 'returns browser name' do
78
- expect(browser.name).to eq(WatirSpec.implementation.browser_args.first)
78
+ expect(browser.name).to eq(WatirSpec.implementation.browser_name)
79
79
  end
80
80
  end
81
81
  end
@@ -519,7 +519,7 @@ describe 'Browser' do
519
519
  browser.close
520
520
  @opts = WatirSpec.implementation.browser_args.last
521
521
 
522
- @opts[:page_load_strategy] = 'none'
522
+ @opts[:options] = {page_load_strategy: :none}
523
523
  browser = WatirSpec.new_browser
524
524
 
525
525
  start_time = Time.now
@@ -93,7 +93,7 @@ describe 'Browser#cookies' do
93
93
  expect((cookie[:expires]).to_i).to be_within(2).of(expires.to_i)
94
94
  end
95
95
 
96
- bug 'https://bugs.chromium.org/p/chromedriver/issues/detail?id=2727', :chrome, :safari do
96
+ bug 'https://bugs.chromium.org/p/chromedriver/issues/detail?id=2727', :chrome, :safari, :edge do
97
97
  it 'adds a cookie with security' do
98
98
  browser.goto set_cookie_url
99
99
 
@@ -41,16 +41,6 @@ describe 'Button' do
41
41
  expect(browser.button(value: /Button 4 With Child Text/)).to exist
42
42
  end
43
43
 
44
- it 'returns true if the button exists (how = :caption)' do
45
- expect {
46
- expect(browser.button(caption: 'Button 2')).to exist
47
- }.to have_deprecated_caption
48
-
49
- expect {
50
- expect(browser.button(caption: /Button 2/)).to exist
51
- }.to have_deprecated_caption
52
- end
53
-
54
44
  it 'returns the first button if given no args' do
55
45
  expect(browser.button).to exist
56
46
  end
@@ -26,29 +26,17 @@ describe 'CheckBox' do
26
26
  expect(browser.checkbox(xpath: "//input[@id='new_user_interests_books']")).to exist
27
27
  end
28
28
 
29
- not_compliant_on :watigiri do
30
- it 'handles text_regexp deprecations for label locators' do
31
- expect {
32
- expect(browser.checkbox(label: /some visible/)).to exist
33
- }.to_not have_deprecated_text_regexp
34
-
35
- expect {
36
- expect(browser.checkbox(label: /some (visible|Jeff)/)).to exist
37
- }.to_not have_deprecated_text_regexp
38
-
39
- expect {
40
- expect(browser.checkbox(label: /this will not match/)).to exist
41
- }.to_not have_deprecated_text_regexp
42
- end
43
-
44
- bug 'Safari is not filtering out hidden text', :safari do
45
- it 'handles text_regexp deprecation in spite of hidden text' do
46
- expect(browser.checkbox(label: /some visible some hidden/)).to_not exist
29
+ # TODO: More of this for text & labels somewhere central
30
+ it 'handles text_regexp deprecations for label locators' do
31
+ expect(browser.checkbox(label: /some visible/)).to exist
32
+ expect(browser.checkbox(label: /some (visible|Jeff)/)).to exist
33
+ expect(browser.checkbox(label: /none visible/)).to exist
34
+ expect(browser.checkbox(label: /this will not match/)).to_not exist
35
+ end
47
36
 
48
- expect {
49
- expect(browser.checkbox(label: /some visible$/)).to exist
50
- }.to have_deprecated_text_regexp
51
- end
37
+ bug 'Safari is not filtering out hidden text', :safari do
38
+ it 'handles text_regexp deprecation in spite of hidden text' do
39
+ expect(browser.checkbox(label: /some visible some hidden/)).to exist
52
40
  end
53
41
  end
54
42