watir 7.2.0 → 7.2.1
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 +4 -4
- data/.github/workflows/chrome.yml +1 -1
- data/.github/workflows/edge.yml +1 -1
- data/.github/workflows/firefox.yml +1 -1
- data/.github/workflows/ie.yml +1 -1
- data/.github/workflows/safari.yml +1 -1
- data/.github/workflows/unit.yml +1 -1
- data/.rubocop.yml +25 -12
- data/.rubocop_todo.yml +8 -1
- data/CHANGES.md +6 -1
- data/LICENSE +2 -2
- data/lib/watir/capabilities.rb +1 -1
- data/lib/watir/locators/anchor/selector_builder.rb +3 -0
- data/lib/watir/locators/element/matcher.rb +2 -1
- data/lib/watir/locators/element/selector_builder/regexp_disassembler.rb +2 -1
- data/lib/watir/locators/text_field/matcher.rb +0 -4
- data/lib/watir/version.rb +1 -1
- data/spec/locator_spec_helper.rb +0 -8
- data/spec/unit/capabilities_spec.rb +553 -561
- data/spec/unit/element_locator_spec.rb +89 -78
- data/spec/unit/match_elements/button_spec.rb +69 -62
- data/spec/unit/match_elements/element_spec.rb +303 -309
- data/spec/unit/match_elements/text_field_spec.rb +76 -73
- data/spec/unit/selector_builder/anchor_spec.rb +39 -33
- data/spec/unit/selector_builder/button_spec.rb +209 -202
- data/spec/unit/selector_builder/cell_spec.rb +48 -42
- data/spec/unit/selector_builder/element_spec.rb +634 -627
- data/spec/unit/selector_builder/row_spec.rb +119 -113
- data/spec/unit/selector_builder/text_field_spec.rb +195 -188
- data/spec/unit/selector_builder/textarea_spec.rb +22 -14
- data/spec/unit/wait_spec.rb +85 -81
- data/spec/watirspec/adjacent_spec.rb +249 -247
- data/spec/watirspec/after_hooks_spec.rb +161 -159
- data/spec/watirspec/alert_spec.rb +61 -58
- data/spec/watirspec/browser_spec.rb +409 -409
- data/spec/watirspec/capabilities_spec.rb +89 -99
- data/spec/watirspec/cookies_spec.rb +120 -118
- data/spec/watirspec/drag_and_drop_spec.rb +26 -24
- data/spec/watirspec/element_hidden_spec.rb +66 -60
- data/spec/watirspec/elements/area_spec.rb +49 -47
- data/spec/watirspec/elements/areas_spec.rb +27 -25
- data/spec/watirspec/elements/button_spec.rb +253 -251
- data/spec/watirspec/elements/buttons_spec.rb +36 -34
- data/spec/watirspec/elements/checkbox_spec.rb +48 -36
- data/spec/watirspec/elements/checkboxes_spec.rb +29 -27
- data/spec/watirspec/elements/collections_spec.rb +126 -119
- data/spec/watirspec/elements/date_field_spec.rb +185 -183
- data/spec/watirspec/elements/date_fields_spec.rb +29 -27
- data/spec/watirspec/elements/date_time_field_spec.rb +197 -195
- data/spec/watirspec/elements/date_time_fields_spec.rb +30 -28
- data/spec/watirspec/elements/dd_spec.rb +87 -85
- data/spec/watirspec/elements/dds_spec.rb +27 -25
- data/spec/watirspec/elements/del_spec.rb +106 -104
- data/spec/watirspec/elements/dels_spec.rb +26 -24
- data/spec/watirspec/elements/div_spec.rb +225 -221
- data/spec/watirspec/elements/divs_spec.rb +37 -35
- data/spec/watirspec/elements/dl_spec.rb +110 -108
- data/spec/watirspec/elements/dls_spec.rb +28 -26
- data/spec/watirspec/elements/dt_spec.rb +86 -84
- data/spec/watirspec/elements/dts_spec.rb +27 -25
- data/spec/watirspec/elements/element_spec.rb +794 -775
- data/spec/watirspec/elements/elements_spec.rb +40 -38
- data/spec/watirspec/elements/em_spec.rb +62 -60
- data/spec/watirspec/elements/ems_spec.rb +28 -26
- data/spec/watirspec/elements/filefield_spec.rb +116 -114
- data/spec/watirspec/elements/filefields_spec.rb +28 -26
- data/spec/watirspec/elements/font_spec.rb +20 -18
- data/spec/watirspec/elements/form_spec.rb +51 -49
- data/spec/watirspec/elements/forms_spec.rb +29 -27
- data/spec/watirspec/elements/frame_spec.rb +89 -87
- data/spec/watirspec/elements/frames_spec.rb +27 -25
- data/spec/watirspec/elements/hidden_spec.rb +81 -79
- data/spec/watirspec/elements/hiddens_spec.rb +28 -26
- data/spec/watirspec/elements/hn_spec.rb +59 -57
- data/spec/watirspec/elements/hns_spec.rb +26 -24
- data/spec/watirspec/elements/iframe_spec.rb +195 -191
- data/spec/watirspec/elements/iframes_spec.rb +31 -29
- data/spec/watirspec/elements/image_spec.rb +148 -146
- data/spec/watirspec/elements/images_spec.rb +26 -24
- data/spec/watirspec/elements/input_spec.rb +9 -7
- data/spec/watirspec/elements/ins_spec.rb +106 -104
- data/spec/watirspec/elements/inses_spec.rb +26 -24
- data/spec/watirspec/elements/label_spec.rb +56 -54
- data/spec/watirspec/elements/labels_spec.rb +26 -24
- data/spec/watirspec/elements/li_spec.rb +76 -74
- data/spec/watirspec/elements/link_spec.rb +173 -177
- data/spec/watirspec/elements/links_spec.rb +45 -43
- data/spec/watirspec/elements/lis_spec.rb +27 -25
- data/spec/watirspec/elements/list_spec.rb +44 -42
- data/spec/watirspec/elements/map_spec.rb +57 -55
- data/spec/watirspec/elements/maps_spec.rb +27 -25
- data/spec/watirspec/elements/meta_spec.rb +16 -14
- data/spec/watirspec/elements/metas_spec.rb +26 -24
- data/spec/watirspec/elements/ol_spec.rb +56 -65
- data/spec/watirspec/elements/ols_spec.rb +26 -24
- data/spec/watirspec/elements/option_spec.rb +91 -89
- data/spec/watirspec/elements/p_spec.rb +81 -79
- data/spec/watirspec/elements/pre_spec.rb +77 -75
- data/spec/watirspec/elements/pres_spec.rb +26 -24
- data/spec/watirspec/elements/ps_spec.rb +26 -24
- data/spec/watirspec/elements/radio_spec.rb +251 -249
- data/spec/watirspec/elements/radios_spec.rb +28 -26
- data/spec/watirspec/elements/select_list_spec.rb +537 -526
- data/spec/watirspec/elements/select_lists_spec.rb +32 -30
- data/spec/watirspec/elements/span_spec.rb +112 -110
- data/spec/watirspec/elements/spans_spec.rb +26 -24
- data/spec/watirspec/elements/strong_spec.rb +58 -58
- data/spec/watirspec/elements/strongs_spec.rb +28 -26
- data/spec/watirspec/elements/table_spec.rb +192 -139
- data/spec/watirspec/elements/tables_spec.rb +28 -26
- data/spec/watirspec/elements/tbody_spec.rb +74 -72
- data/spec/watirspec/elements/tbodys_spec.rb +40 -38
- data/spec/watirspec/elements/td_spec.rb +66 -64
- data/spec/watirspec/elements/tds_spec.rb +41 -39
- data/spec/watirspec/elements/text_field_spec.rb +206 -204
- data/spec/watirspec/elements/text_fields_spec.rb +30 -28
- data/spec/watirspec/elements/textarea_spec.rb +20 -18
- data/spec/watirspec/elements/textareas_spec.rb +18 -16
- data/spec/watirspec/elements/tfoot_spec.rb +65 -63
- data/spec/watirspec/elements/tfoots_spec.rb +42 -40
- data/spec/watirspec/elements/thead_spec.rb +65 -63
- data/spec/watirspec/elements/theads_spec.rb +42 -40
- data/spec/watirspec/elements/tr_spec.rb +48 -46
- data/spec/watirspec/elements/trs_spec.rb +42 -40
- data/spec/watirspec/elements/ul_spec.rb +56 -54
- data/spec/watirspec/elements/uls_spec.rb +26 -24
- data/spec/watirspec/radio_set_spec.rb +269 -267
- data/spec/watirspec/screenshot_spec.rb +20 -18
- data/spec/watirspec/scroll_spec.rb +152 -148
- data/spec/watirspec/shadow_root_spec.rb +86 -83
- data/spec/watirspec/user_editable_spec.rb +200 -198
- data/spec/watirspec/wait_spec.rb +289 -295
- data/spec/watirspec/window_switching_spec.rb +422 -434
- data/spec/watirspec_helper.rb +1 -23
- data/watir.gemspec +5 -4
- metadata +44 -33
- data/spec/watirspec/attributes_spec.rb +0 -18
- data/spec/watirspec/elements/table_nesting_spec.rb +0 -51
- data/spec/watirspec/special_chars_spec.rb +0 -23
|
@@ -2,60 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
require 'watirspec_helper'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
describe 'with selectors' do
|
|
11
|
-
it 'returns the matching elements' do
|
|
12
|
-
expect(browser.trs(id: 'outer_second').to_a).to eq [browser.tr(id: 'outer_second')]
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
describe '#length' do
|
|
17
|
-
it 'returns the correct number of cells (table context)' do
|
|
18
|
-
expect(browser.table(id: 'inner').trs.length).to eq 1
|
|
19
|
-
expect(browser.table(id: 'outer').trs.length).to eq 4
|
|
5
|
+
module Watir
|
|
6
|
+
describe TableRowCollection do
|
|
7
|
+
before do
|
|
8
|
+
browser.goto(WatirSpec.url_for('tables.html'))
|
|
20
9
|
end
|
|
21
10
|
|
|
22
|
-
|
|
23
|
-
|
|
11
|
+
describe 'with selectors' do
|
|
12
|
+
it 'returns the matching elements' do
|
|
13
|
+
expect(browser.trs(id: 'outer_second').to_a).to eq [browser.tr(id: 'outer_second')]
|
|
14
|
+
end
|
|
24
15
|
end
|
|
25
|
-
end
|
|
26
16
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
17
|
+
describe '#length' do
|
|
18
|
+
it 'returns the correct number of cells (table context)' do
|
|
19
|
+
expect(browser.table(id: 'inner').trs.length).to eq 1
|
|
20
|
+
expect(browser.table(id: 'outer').trs.length).to eq 4
|
|
21
|
+
end
|
|
31
22
|
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
it 'returns the correct number of cells (page context)' do
|
|
24
|
+
expect(browser.trs.length).to eq 14
|
|
25
|
+
end
|
|
34
26
|
end
|
|
35
|
-
end
|
|
36
27
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
describe '#[]' do
|
|
29
|
+
it 'returns the row at the given index (table context)' do
|
|
30
|
+
expect(browser.table(id: 'outer').trs[0].id).to eq 'outer_first'
|
|
31
|
+
end
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
expect(
|
|
44
|
-
count += 1
|
|
33
|
+
it 'returns the row at the given index (page context)' do
|
|
34
|
+
expect(browser.trs[0].id).to eq 'thead_row_1'
|
|
45
35
|
end
|
|
46
|
-
expect(count).to be > 0
|
|
47
36
|
end
|
|
48
37
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
38
|
+
describe '#each' do
|
|
39
|
+
it 'iterates through rows correctly' do
|
|
40
|
+
inner_table = browser.table(id: 'inner')
|
|
41
|
+
count = 0
|
|
52
42
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
inner_table.trs.each_with_index do |r, index|
|
|
44
|
+
expect(r.id).to eq inner_table.tr(index: index).id
|
|
45
|
+
count += 1
|
|
46
|
+
end
|
|
47
|
+
expect(count).to be > 0
|
|
56
48
|
end
|
|
57
49
|
|
|
58
|
-
|
|
50
|
+
it 'iterates through the outer table correctly' do
|
|
51
|
+
outer_table = browser.table(id: 'outer')
|
|
52
|
+
count = 0
|
|
53
|
+
|
|
54
|
+
outer_table.trs.each_with_index do |r, index|
|
|
55
|
+
expect(r.id).to eq outer_table.tr(index: index).id
|
|
56
|
+
count += 1
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
expect(count).to be > 0
|
|
60
|
+
end
|
|
59
61
|
end
|
|
60
62
|
end
|
|
61
63
|
end
|
|
@@ -2,60 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
require 'watirspec_helper'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
5
|
+
module Watir
|
|
6
|
+
describe UList do
|
|
7
|
+
before do
|
|
8
|
+
browser.goto(WatirSpec.url_for('non_control_elements.html'))
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Exists method
|
|
12
|
+
describe '#exist?' do
|
|
13
|
+
it "returns true if the 'ul' exists" do
|
|
14
|
+
expect(browser.ul(id: 'navbar')).to exist
|
|
15
|
+
expect(browser.ul(id: /navbar/)).to exist
|
|
16
|
+
expect(browser.ul(index: 0)).to exist
|
|
17
|
+
expect(browser.ul(xpath: "//ul[@id='navbar']")).to exist
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'returns the first ul if given no args' do
|
|
21
|
+
expect(browser.ul).to exist
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "returns false if the 'ul' doesn't exist" do
|
|
25
|
+
expect(browser.ul(id: 'no_such_id')).not_to exist
|
|
26
|
+
expect(browser.ul(id: /no_such_id/)).not_to exist
|
|
27
|
+
expect(browser.ul(text: 'no_such_text')).not_to exist
|
|
28
|
+
expect(browser.ul(text: /no_such_text/)).not_to exist
|
|
29
|
+
expect(browser.ul(class: 'no_such_class')).not_to exist
|
|
30
|
+
expect(browser.ul(class: /no_such_class/)).not_to exist
|
|
31
|
+
expect(browser.ul(index: 1337)).not_to exist
|
|
32
|
+
expect(browser.ul(xpath: "//ul[@id='no_such_id']")).not_to exist
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "raises TypeError when 'what' argument is invalid" do
|
|
36
|
+
expect { browser.ul(id: 3.14).exists? }.to raise_error(TypeError)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Attribute methods
|
|
41
|
+
describe '#id' do
|
|
42
|
+
it 'returns the id attribute' do
|
|
43
|
+
expect(browser.ul(class: 'navigation').id).to eq 'navbar'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "returns an empty string if the element exists and the attribute doesn't" do
|
|
47
|
+
expect(browser.ul(index: 1).id).to eq ''
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "raises UnknownObjectException if the ul doesn't exist" do
|
|
51
|
+
expect { browser.ul(id: 'no_such_id').id }.to raise_unknown_object_exception
|
|
52
|
+
expect { browser.ul(index: 1337).id }.to raise_unknown_object_exception
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
describe '#respond_to?' do
|
|
57
|
+
it 'returns true for all attribute methods' do
|
|
58
|
+
expect(browser.ul(index: 0)).to respond_to(:class_name)
|
|
59
|
+
expect(browser.ul(index: 0)).to respond_to(:id)
|
|
60
|
+
end
|
|
59
61
|
end
|
|
60
62
|
end
|
|
61
63
|
end
|
|
@@ -2,39 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
require 'watirspec_helper'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
module Watir
|
|
6
|
+
describe UListCollection do
|
|
7
|
+
before do
|
|
8
|
+
browser.goto(WatirSpec.url_for('non_control_elements.html'))
|
|
9
|
+
end
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
describe 'with selectors' do
|
|
12
|
+
it 'returns the matching elements' do
|
|
13
|
+
expect(browser.uls(class: 'navigation').to_a).to eq [browser.ul(class: 'navigation')]
|
|
14
|
+
end
|
|
13
15
|
end
|
|
14
|
-
end
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
describe '#length' do
|
|
18
|
+
it 'returns the number of uls' do
|
|
19
|
+
expect(browser.uls.length).to eq 2
|
|
20
|
+
end
|
|
19
21
|
end
|
|
20
|
-
end
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
describe '#[]' do
|
|
24
|
+
it 'returns the ul at the given index' do
|
|
25
|
+
expect(browser.uls[0].id).to eq 'navbar'
|
|
26
|
+
end
|
|
25
27
|
end
|
|
26
|
-
end
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
describe '#each' do
|
|
30
|
+
it 'iterates through uls correctly' do
|
|
31
|
+
count = 0
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
browser.uls.each_with_index do |ul, index|
|
|
34
|
+
expect(ul.id).to eq browser.ul(index: index).id
|
|
35
|
+
count += 1
|
|
36
|
+
end
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
expect(count).to be > 0
|
|
39
|
+
end
|
|
38
40
|
end
|
|
39
41
|
end
|
|
40
42
|
end
|