watir 6.10.0 → 6.10.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.document +5 -5
- data/.github/ISSUE_TEMPLATE.md +16 -16
- data/.gitignore +21 -21
- data/.travis.yml +72 -72
- data/CHANGES.md +6 -0
- data/Gemfile +16 -16
- data/LICENSE +23 -23
- data/README.md +106 -106
- data/Rakefile +153 -153
- data/appveyor.yml +13 -13
- data/lib/watir-webdriver.rb +2 -2
- data/lib/watir.rb +158 -158
- data/lib/watir/adjacent.rb +126 -126
- data/lib/watir/after_hooks.rb +132 -132
- data/lib/watir/alert.rb +120 -120
- data/lib/watir/aliases.rb +6 -6
- data/lib/watir/attribute_helper.rb +96 -96
- data/lib/watir/browser.rb +349 -349
- data/lib/watir/capabilities.rb +123 -123
- data/lib/watir/cell_container.rb +25 -25
- data/lib/watir/container.rb +51 -51
- data/lib/watir/cookies.rb +134 -134
- data/lib/watir/element_collection.rb +138 -138
- data/lib/watir/elements/area.rb +12 -12
- data/lib/watir/elements/button.rb +37 -37
- data/lib/watir/elements/cell.rb +17 -17
- data/lib/watir/elements/checkbox.rb +56 -56
- data/lib/watir/elements/dlist.rb +12 -12
- data/lib/watir/elements/element.rb +6 -5
- data/lib/watir/elements/file_field.rb +41 -41
- data/lib/watir/elements/font.rb +25 -25
- data/lib/watir/elements/form.rb +16 -16
- data/lib/watir/elements/hidden.rb +25 -25
- data/lib/watir/elements/html_elements.rb +2035 -2035
- data/lib/watir/elements/iframe.rb +166 -166
- data/lib/watir/elements/image.rb +21 -21
- data/lib/watir/elements/input.rb +15 -15
- data/lib/watir/elements/link.rb +18 -18
- data/lib/watir/elements/list.rb +49 -49
- data/lib/watir/elements/option.rb +72 -72
- data/lib/watir/elements/radio.rb +60 -60
- data/lib/watir/elements/row.rb +17 -17
- data/lib/watir/elements/select.rb +250 -250
- data/lib/watir/elements/svg_elements.rb +613 -613
- data/lib/watir/elements/table.rb +76 -76
- data/lib/watir/elements/table_cell.rb +31 -31
- data/lib/watir/elements/table_row.rb +32 -32
- data/lib/watir/elements/table_section.rb +15 -15
- data/lib/watir/elements/text_area.rb +5 -5
- data/lib/watir/elements/text_field.rb +39 -39
- data/lib/watir/exception.rb +16 -16
- data/lib/watir/extensions/nokogiri.rb +14 -14
- data/lib/watir/generator.rb +3 -3
- data/lib/watir/generator/base.rb +11 -11
- data/lib/watir/generator/base/generator.rb +115 -115
- data/lib/watir/generator/base/idl_sorter.rb +47 -47
- data/lib/watir/generator/base/spec_extractor.rb +138 -138
- data/lib/watir/generator/base/util.rb +21 -21
- data/lib/watir/generator/base/visitor.rb +162 -162
- data/lib/watir/generator/html.rb +15 -15
- data/lib/watir/generator/html/generator.rb +36 -36
- data/lib/watir/generator/html/spec_extractor.rb +50 -50
- data/lib/watir/generator/html/visitor.rb +21 -21
- data/lib/watir/generator/svg.rb +7 -7
- data/lib/watir/generator/svg/generator.rb +38 -38
- data/lib/watir/generator/svg/spec_extractor.rb +53 -53
- data/lib/watir/generator/svg/visitor.rb +21 -21
- data/lib/watir/has_window.rb +68 -68
- data/lib/watir/js_execution.rb +143 -143
- data/lib/watir/js_snippets.rb +16 -16
- data/lib/watir/js_snippets/backgroundColor.js +7 -7
- data/lib/watir/js_snippets/fireEvent.js +31 -31
- data/lib/watir/js_snippets/focus.js +3 -3
- data/lib/watir/js_snippets/getInnerHtml.js +19 -19
- data/lib/watir/js_snippets/getInnerText.js +19 -19
- data/lib/watir/js_snippets/getOuterHtml.js +20 -20
- data/lib/watir/js_snippets/getTextContent.js +19 -19
- data/lib/watir/js_snippets/isImageLoaded.js +3 -3
- data/lib/watir/js_snippets/selectOptionsLabel.js +10 -10
- data/lib/watir/js_snippets/selectOptionsText.js +10 -10
- data/lib/watir/js_snippets/selectOptionsValue.js +10 -10
- data/lib/watir/js_snippets/selectText.js +64 -64
- data/lib/watir/js_snippets/selectedOptions.js +11 -11
- data/lib/watir/js_snippets/setValue.js +3 -3
- data/lib/watir/legacy_wait.rb +126 -126
- data/lib/watir/locators.rb +60 -60
- data/lib/watir/locators/button/locator.rb +31 -31
- data/lib/watir/locators/button/selector_builder.rb +30 -30
- data/lib/watir/locators/button/selector_builder/xpath.rb +29 -29
- data/lib/watir/locators/button/validator.rb +15 -15
- data/lib/watir/locators/cell/locator.rb +15 -15
- data/lib/watir/locators/cell/selector_builder.rb +24 -24
- data/lib/watir/locators/element/locator.rb +1 -0
- data/lib/watir/locators/element/selector_builder.rb +150 -150
- data/lib/watir/locators/element/selector_builder/xpath.rb +119 -119
- data/lib/watir/locators/element/validator.rb +18 -18
- data/lib/watir/locators/row/locator.rb +15 -15
- data/lib/watir/locators/row/selector_builder.rb +29 -29
- data/lib/watir/locators/text_area/locator.rb +13 -13
- data/lib/watir/locators/text_area/selector_builder.rb +22 -22
- data/lib/watir/locators/text_field/locator.rb +30 -30
- data/lib/watir/locators/text_field/selector_builder.rb +31 -31
- data/lib/watir/locators/text_field/selector_builder/xpath.rb +17 -17
- data/lib/watir/locators/text_field/validator.rb +12 -12
- data/lib/watir/logger.rb +109 -109
- data/lib/watir/radio_set.rb +231 -231
- data/lib/watir/row_container.rb +36 -36
- data/lib/watir/screenshot.rb +50 -50
- data/lib/watir/user_editable.rb +56 -56
- data/lib/watir/wait.rb +200 -200
- data/lib/watir/wait/timer.rb +52 -52
- data/lib/watir/window.rb +257 -257
- data/lib/watir/xpath_support.rb +20 -20
- data/lib/watirspec.rb +86 -86
- data/lib/watirspec/guards.rb +60 -60
- data/lib/watirspec/implementation.rb +51 -51
- data/lib/watirspec/rake_tasks.rb +115 -115
- data/lib/watirspec/remote_server.rb +38 -38
- data/lib/watirspec/runner.rb +53 -53
- data/lib/watirspec/server.rb +99 -99
- data/lib/watirspec/server/app.rb +76 -76
- data/spec/browser_spec.rb +278 -278
- data/spec/click_spec.rb +19 -19
- data/spec/container_spec.rb +34 -34
- data/spec/element_locator_spec.rb +517 -517
- data/spec/element_spec.rb +158 -158
- data/spec/implementation_spec.rb +24 -24
- data/spec/input_spec.rb +14 -14
- data/spec/locator_spec_helper.rb +55 -55
- data/spec/logger_spec.rb +46 -46
- data/spec/spec_helper.rb +22 -22
- data/spec/special_chars_spec.rb +13 -13
- data/spec/watirspec/adjacent_spec.rb +227 -227
- data/spec/watirspec/after_hooks_spec.rb +182 -182
- data/spec/watirspec/alert_spec.rb +108 -108
- data/spec/watirspec/attributes_spec.rb +16 -16
- data/spec/watirspec/browser_spec.rb +281 -281
- data/spec/watirspec/cookies_spec.rb +154 -154
- data/spec/watirspec/drag_and_drop_spec.rb +49 -49
- data/spec/watirspec/element_hidden_spec.rb +75 -75
- data/spec/watirspec/elements/area_spec.rb +72 -72
- data/spec/watirspec/elements/areas_spec.rb +42 -42
- data/spec/watirspec/elements/button_spec.rb +277 -277
- data/spec/watirspec/elements/buttons_spec.rb +55 -55
- data/spec/watirspec/elements/checkbox_spec.rb +275 -275
- data/spec/watirspec/elements/checkboxes_spec.rb +44 -44
- data/spec/watirspec/elements/collections_spec.rb +52 -52
- data/spec/watirspec/elements/dd_spec.rb +124 -124
- data/spec/watirspec/elements/dds_spec.rb +42 -42
- data/spec/watirspec/elements/del_spec.rb +126 -126
- data/spec/watirspec/elements/dels_spec.rb +40 -40
- data/spec/watirspec/elements/div_spec.rb +245 -245
- data/spec/watirspec/elements/divs_spec.rb +42 -42
- data/spec/watirspec/elements/dl_spec.rb +142 -142
- data/spec/watirspec/elements/dls_spec.rb +43 -43
- data/spec/watirspec/elements/dt_spec.rb +122 -122
- data/spec/watirspec/elements/dts_spec.rb +42 -42
- data/spec/watirspec/elements/element_spec.rb +483 -483
- data/spec/watirspec/elements/elements_spec.rb +47 -47
- data/spec/watirspec/elements/em_spec.rb +96 -96
- data/spec/watirspec/elements/ems_spec.rb +43 -43
- data/spec/watirspec/elements/filefield_spec.rb +170 -170
- data/spec/watirspec/elements/filefields_spec.rb +43 -43
- data/spec/watirspec/elements/font_spec.rb +29 -29
- data/spec/watirspec/elements/form_spec.rb +66 -66
- data/spec/watirspec/elements/forms_spec.rb +46 -46
- data/spec/watirspec/elements/frame_spec.rb +123 -123
- data/spec/watirspec/elements/frames_spec.rb +41 -41
- data/spec/watirspec/elements/hidden_spec.rb +104 -104
- data/spec/watirspec/elements/hiddens_spec.rb +43 -43
- data/spec/watirspec/elements/hn_spec.rb +92 -92
- data/spec/watirspec/elements/hns_spec.rb +38 -38
- data/spec/watirspec/elements/iframe_spec.rb +10 -0
- data/spec/watirspec/elements/iframes_spec.rb +47 -47
- data/spec/watirspec/elements/image_spec.rb +158 -158
- data/spec/watirspec/elements/images_spec.rb +40 -40
- data/spec/watirspec/elements/ins_spec.rb +127 -127
- data/spec/watirspec/elements/inses_spec.rb +40 -40
- data/spec/watirspec/elements/label_spec.rb +75 -75
- data/spec/watirspec/elements/labels_spec.rb +40 -40
- data/spec/watirspec/elements/li_spec.rb +111 -111
- data/spec/watirspec/elements/link_spec.rb +171 -171
- data/spec/watirspec/elements/links_spec.rb +44 -44
- data/spec/watirspec/elements/lis_spec.rb +42 -42
- data/spec/watirspec/elements/list_spec.rb +32 -32
- data/spec/watirspec/elements/map_spec.rb +75 -75
- data/spec/watirspec/elements/maps_spec.rb +41 -41
- data/spec/watirspec/elements/meta_spec.rb +23 -23
- data/spec/watirspec/elements/metas_spec.rb +40 -40
- data/spec/watirspec/elements/ol_spec.rb +87 -87
- data/spec/watirspec/elements/ols_spec.rb +40 -40
- data/spec/watirspec/elements/option_spec.rb +121 -121
- data/spec/watirspec/elements/p_spec.rb +111 -111
- data/spec/watirspec/elements/pre_spec.rb +111 -111
- data/spec/watirspec/elements/pres_spec.rb +40 -40
- data/spec/watirspec/elements/ps_spec.rb +40 -40
- data/spec/watirspec/elements/radio_spec.rb +273 -273
- data/spec/watirspec/elements/radios_spec.rb +43 -43
- data/spec/watirspec/elements/select_list_spec.rb +553 -553
- data/spec/watirspec/elements/select_lists_spec.rb +46 -46
- data/spec/watirspec/elements/span_spec.rb +128 -128
- data/spec/watirspec/elements/spans_spec.rb +40 -40
- data/spec/watirspec/elements/strong_spec.rb +88 -88
- data/spec/watirspec/elements/strongs_spec.rb +43 -43
- data/spec/watirspec/elements/table_nesting_spec.rb +51 -51
- data/spec/watirspec/elements/table_spec.rb +156 -156
- data/spec/watirspec/elements/tables_spec.rb +42 -42
- data/spec/watirspec/elements/tbody_spec.rb +93 -93
- data/spec/watirspec/elements/tbodys_spec.rb +62 -62
- data/spec/watirspec/elements/td_spec.rb +93 -93
- data/spec/watirspec/elements/tds_spec.rb +53 -53
- data/spec/watirspec/elements/text_field_spec.rb +360 -360
- data/spec/watirspec/elements/text_fields_spec.rb +44 -44
- data/spec/watirspec/elements/textarea_spec.rb +26 -26
- data/spec/watirspec/elements/textareas_spec.rb +24 -24
- data/spec/watirspec/elements/tfoot_spec.rb +86 -86
- data/spec/watirspec/elements/tfoots_spec.rb +68 -68
- data/spec/watirspec/elements/thead_spec.rb +86 -86
- data/spec/watirspec/elements/theads_spec.rb +68 -68
- data/spec/watirspec/elements/tr_spec.rb +78 -78
- data/spec/watirspec/elements/trs_spec.rb +61 -61
- data/spec/watirspec/elements/ul_spec.rb +76 -76
- data/spec/watirspec/elements/uls_spec.rb +39 -39
- data/spec/watirspec/html/alerts.html +12 -12
- data/spec/watirspec/html/aria_attributes.html +9 -9
- data/spec/watirspec/html/class_locator.html +8 -8
- data/spec/watirspec/html/clicks.html +19 -19
- data/spec/watirspec/html/closeable.html +12 -12
- data/spec/watirspec/html/collections.html +14 -14
- data/spec/watirspec/html/css/jquery-ui-1.8.17.custom.css +286 -286
- data/spec/watirspec/html/data_attributes.html +9 -9
- data/spec/watirspec/html/definition_lists.html +47 -47
- data/spec/watirspec/html/drag_and_drop.html +106 -106
- data/spec/watirspec/html/font.html +10 -10
- data/spec/watirspec/html/forms_with_input_elements.html +174 -174
- data/spec/watirspec/html/frame_1.html +22 -22
- data/spec/watirspec/html/frame_2.html +15 -15
- data/spec/watirspec/html/frames.html +10 -10
- data/spec/watirspec/html/hover.html +11 -11
- data/spec/watirspec/html/iframe_1.html +22 -22
- data/spec/watirspec/html/iframes.html +12 -12
- data/spec/watirspec/html/images.html +27 -27
- data/spec/watirspec/html/inner_outer.html +4 -4
- data/spec/watirspec/html/javascript/angular.min.js +331 -331
- data/spec/watirspec/html/javascript/helpers.js +16 -16
- data/spec/watirspec/html/javascript/jquery-1.7.1.min.js +3 -3
- data/spec/watirspec/html/javascript/jquery-ui-1.8.17.custom.min.js +67 -67
- data/spec/watirspec/html/keylogger.html +14 -14
- data/spec/watirspec/html/modal_dialog.html +9 -9
- data/spec/watirspec/html/multiple_ids.html +14 -14
- data/spec/watirspec/html/nested_elements.html +33 -33
- data/spec/watirspec/html/nested_frame_2.html +9 -9
- data/spec/watirspec/html/nested_frame_3.html +14 -14
- data/spec/watirspec/html/nested_frames.html +10 -10
- data/spec/watirspec/html/nested_iframe_2.html +12 -12
- data/spec/watirspec/html/nested_iframes.html +13 -13
- data/spec/watirspec/html/nested_tables.html +202 -202
- data/spec/watirspec/html/non_control_elements.html +140 -140
- data/spec/watirspec/html/removed_element.html +24 -24
- data/spec/watirspec/html/right_click.html +10 -10
- data/spec/watirspec/html/special_chars.html +11 -11
- data/spec/watirspec/html/tables.html +120 -120
- data/spec/watirspec/html/timeout_window_location.html +19 -19
- data/spec/watirspec/html/uneven_table.html +20 -20
- data/spec/watirspec/html/wait.html +84 -84
- data/spec/watirspec/html/window_switching.html +11 -11
- data/spec/watirspec/radio_set_spec.rb +336 -336
- data/spec/watirspec/relaxed_locate_spec.rb +99 -99
- data/spec/watirspec/screenshot_spec.rb +29 -29
- data/spec/watirspec/support/raise_exception_matchers.rb +36 -36
- data/spec/watirspec/wait_spec.rb +381 -381
- data/spec/watirspec/window_switching_spec.rb +415 -415
- data/spec/watirspec_helper.rb +161 -161
- data/support/appveyor.cmd +9 -9
- data/support/doctest_helper.rb +101 -101
- data/support/travis.sh +11 -11
- data/support/version_differ.rb +59 -59
- data/watir.gemspec +1 -1
- metadata +4 -170
@@ -1,46 +1,46 @@
|
|
1
|
-
require "watirspec_helper"
|
2
|
-
|
3
|
-
describe "SelectLists" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
browser.goto(WatirSpec.url_for("forms_with_input_elements.html"))
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "with selectors" do
|
10
|
-
it "returns the matching elements" do
|
11
|
-
expect(browser.select_lists(name: "delete_user_username").to_a).to eq [browser.select_list(name: "delete_user_username")]
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#length" do
|
16
|
-
it "returns the correct number of select lists on the page" do
|
17
|
-
expect(browser.select_lists.length).to eq 6
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "#[]" do
|
22
|
-
it "returns the correct item" do
|
23
|
-
expect(browser.select_lists[0].value).to eq "2"
|
24
|
-
expect(browser.select_lists[0].name).to eq "new_user_country"
|
25
|
-
expect(browser.select_lists[0]).to_not be_multiple
|
26
|
-
expect(browser.select_lists[1]).to be_multiple
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "#each" do
|
31
|
-
it "iterates through the select lists correctly" do
|
32
|
-
count = 0
|
33
|
-
|
34
|
-
browser.select_lists.each_with_index do |l, index|
|
35
|
-
expect(browser.select_list(index: index).name).to eq l.name
|
36
|
-
expect(browser.select_list(index: index).id).to eq l.id
|
37
|
-
expect(browser.select_list(index: index).value).to eq l.value
|
38
|
-
|
39
|
-
count += 1
|
40
|
-
end
|
41
|
-
|
42
|
-
expect(count).to be > 0
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
1
|
+
require "watirspec_helper"
|
2
|
+
|
3
|
+
describe "SelectLists" do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
browser.goto(WatirSpec.url_for("forms_with_input_elements.html"))
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "with selectors" do
|
10
|
+
it "returns the matching elements" do
|
11
|
+
expect(browser.select_lists(name: "delete_user_username").to_a).to eq [browser.select_list(name: "delete_user_username")]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#length" do
|
16
|
+
it "returns the correct number of select lists on the page" do
|
17
|
+
expect(browser.select_lists.length).to eq 6
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#[]" do
|
22
|
+
it "returns the correct item" do
|
23
|
+
expect(browser.select_lists[0].value).to eq "2"
|
24
|
+
expect(browser.select_lists[0].name).to eq "new_user_country"
|
25
|
+
expect(browser.select_lists[0]).to_not be_multiple
|
26
|
+
expect(browser.select_lists[1]).to be_multiple
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#each" do
|
31
|
+
it "iterates through the select lists correctly" do
|
32
|
+
count = 0
|
33
|
+
|
34
|
+
browser.select_lists.each_with_index do |l, index|
|
35
|
+
expect(browser.select_list(index: index).name).to eq l.name
|
36
|
+
expect(browser.select_list(index: index).id).to eq l.id
|
37
|
+
expect(browser.select_list(index: index).value).to eq l.value
|
38
|
+
|
39
|
+
count += 1
|
40
|
+
end
|
41
|
+
|
42
|
+
expect(count).to be > 0
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -1,128 +1,128 @@
|
|
1
|
-
require "watirspec_helper"
|
2
|
-
|
3
|
-
describe "Span" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
browser.goto(WatirSpec.url_for("non_control_elements.html"))
|
7
|
-
end
|
8
|
-
|
9
|
-
# Exists method
|
10
|
-
describe "#exist?" do
|
11
|
-
it "returns true if the 'span' exists" do
|
12
|
-
expect(browser.span(id: "lead")).to exist
|
13
|
-
expect(browser.span(id: /lead/)).to exist
|
14
|
-
expect(browser.span(text: "Dubito, ergo cogito, ergo sum.")).to exist
|
15
|
-
expect(browser.span(text: /Dubito, ergo cogito, ergo sum/)).to exist
|
16
|
-
expect(browser.span(class: "lead")).to exist
|
17
|
-
expect(browser.span(class: /lead/)).to exist
|
18
|
-
expect(browser.span(index: 0)).to exist
|
19
|
-
expect(browser.span(xpath: "//span[@id='lead']")).to exist
|
20
|
-
end
|
21
|
-
|
22
|
-
it "returns the first span if given no args" do
|
23
|
-
expect(browser.span).to exist
|
24
|
-
end
|
25
|
-
|
26
|
-
it "returns false if the element doesn't exist" do
|
27
|
-
expect(browser.span(id: "no_such_id")).to_not exist
|
28
|
-
expect(browser.span(id: /no_such_id/)).to_not exist
|
29
|
-
expect(browser.span(text: "no_such_text")).to_not exist
|
30
|
-
msg = /:text locator with RegExp values to find elements based on only visible text is deprecated. Use :visible_text instead./
|
31
|
-
expect { expect(browser.span(text: /no_such_text/)).to_not exist }.to output(msg).to_stdout_from_any_process
|
32
|
-
expect(browser.span(class: "no_such_class")).to_not exist
|
33
|
-
expect(browser.span(class: /no_such_class/)).to_not exist
|
34
|
-
expect(browser.span(index: 1337)).to_not exist
|
35
|
-
expect(browser.span(xpath: "//span[@id='no_such_id']")).to_not exist
|
36
|
-
end
|
37
|
-
|
38
|
-
it "raises TypeError when 'what' argument is invalid" do
|
39
|
-
expect { browser.span(id: 3.14).exists? }.to raise_error(TypeError)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# Attribute methods
|
44
|
-
describe "#class_name" do
|
45
|
-
it "returns the class attribute" do
|
46
|
-
expect(browser.span(index: 0).class_name).to eq 'lead'
|
47
|
-
end
|
48
|
-
|
49
|
-
it "returns an empty string if the element exists and the attribute doesn't" do
|
50
|
-
expect(browser.span(index: 2).class_name).to eq ''
|
51
|
-
end
|
52
|
-
|
53
|
-
it "raises UnknownObjectException if the span doesn't exist" do
|
54
|
-
expect { browser.span(id: 'no_such_id').class_name }.to raise_unknown_object_exception
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
describe "#id" do
|
59
|
-
it "returns the id attribute" do
|
60
|
-
expect(browser.span(index: 0).id).to eq "lead"
|
61
|
-
end
|
62
|
-
|
63
|
-
it "returns an empty string if the element exists and the attribute doesn't" do
|
64
|
-
expect(browser.span(index: 2).id).to eq ''
|
65
|
-
end
|
66
|
-
|
67
|
-
it "raises UnknownObjectException if the span doesn't exist" do
|
68
|
-
expect { browser.span(id: "no_such_id").id }.to raise_unknown_object_exception
|
69
|
-
expect { browser.span(index: 1337).id }.to raise_unknown_object_exception
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
describe "#title" do
|
74
|
-
it "returns the title attribute" do
|
75
|
-
expect(browser.span(index: 0).title).to eq 'Lorem ipsum'
|
76
|
-
end
|
77
|
-
|
78
|
-
it "returns an empty string if the element exists and the attribute doesn't" do
|
79
|
-
expect(browser.span(index: 2).title).to eq ''
|
80
|
-
end
|
81
|
-
|
82
|
-
it "raises UnknownObjectException if the span doesn't exist" do
|
83
|
-
expect { browser.span(id: 'no_such_id').title }.to raise_unknown_object_exception
|
84
|
-
expect { browser.span(xpath: "//span[@id='no_such_id']").title }.to raise_unknown_object_exception
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
describe "#text" do
|
89
|
-
it "returns the text of the span" do
|
90
|
-
expect(browser.span(index: 1).text).to eq 'Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.'
|
91
|
-
end
|
92
|
-
|
93
|
-
it "returns an empty string if the element doesn't contain any text" do
|
94
|
-
expect(browser.span(index: 4).text).to eq ''
|
95
|
-
end
|
96
|
-
|
97
|
-
it "raises UnknownObjectException if the span doesn't exist" do
|
98
|
-
expect { browser.span(id: 'no_such_id').text }.to raise_unknown_object_exception
|
99
|
-
expect { browser.span(:xpath , "//span[@id='no_such_id']").text }.to raise_unknown_object_exception
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
describe "#respond_to?" do
|
104
|
-
it "returns true for all attribute methods" do
|
105
|
-
expect(browser.span(index: 0)).to respond_to(:class_name)
|
106
|
-
expect(browser.span(index: 0)).to respond_to(:id)
|
107
|
-
expect(browser.span(index: 0)).to respond_to(:title)
|
108
|
-
expect(browser.span(index: 0)).to respond_to(:text)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
# Other
|
113
|
-
not_compliant_on :headless do
|
114
|
-
describe "#click" do
|
115
|
-
it "fires events" do
|
116
|
-
expect(browser.span(class: 'footer').text).to_not include('Javascript')
|
117
|
-
browser.span(class: 'footer').click
|
118
|
-
expect(browser.span(class: 'footer').text).to include('Javascript')
|
119
|
-
end
|
120
|
-
|
121
|
-
it "raises UnknownObjectException if the span doesn't exist" do
|
122
|
-
expect { browser.span(id: "no_such_id").click }.to raise_unknown_object_exception
|
123
|
-
expect { browser.span(title: "no_such_title").click }.to raise_unknown_object_exception
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
end
|
1
|
+
require "watirspec_helper"
|
2
|
+
|
3
|
+
describe "Span" do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
browser.goto(WatirSpec.url_for("non_control_elements.html"))
|
7
|
+
end
|
8
|
+
|
9
|
+
# Exists method
|
10
|
+
describe "#exist?" do
|
11
|
+
it "returns true if the 'span' exists" do
|
12
|
+
expect(browser.span(id: "lead")).to exist
|
13
|
+
expect(browser.span(id: /lead/)).to exist
|
14
|
+
expect(browser.span(text: "Dubito, ergo cogito, ergo sum.")).to exist
|
15
|
+
expect(browser.span(text: /Dubito, ergo cogito, ergo sum/)).to exist
|
16
|
+
expect(browser.span(class: "lead")).to exist
|
17
|
+
expect(browser.span(class: /lead/)).to exist
|
18
|
+
expect(browser.span(index: 0)).to exist
|
19
|
+
expect(browser.span(xpath: "//span[@id='lead']")).to exist
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns the first span if given no args" do
|
23
|
+
expect(browser.span).to exist
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns false if the element doesn't exist" do
|
27
|
+
expect(browser.span(id: "no_such_id")).to_not exist
|
28
|
+
expect(browser.span(id: /no_such_id/)).to_not exist
|
29
|
+
expect(browser.span(text: "no_such_text")).to_not exist
|
30
|
+
msg = /:text locator with RegExp values to find elements based on only visible text is deprecated. Use :visible_text instead./
|
31
|
+
expect { expect(browser.span(text: /no_such_text/)).to_not exist }.to output(msg).to_stdout_from_any_process
|
32
|
+
expect(browser.span(class: "no_such_class")).to_not exist
|
33
|
+
expect(browser.span(class: /no_such_class/)).to_not exist
|
34
|
+
expect(browser.span(index: 1337)).to_not exist
|
35
|
+
expect(browser.span(xpath: "//span[@id='no_such_id']")).to_not exist
|
36
|
+
end
|
37
|
+
|
38
|
+
it "raises TypeError when 'what' argument is invalid" do
|
39
|
+
expect { browser.span(id: 3.14).exists? }.to raise_error(TypeError)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Attribute methods
|
44
|
+
describe "#class_name" do
|
45
|
+
it "returns the class attribute" do
|
46
|
+
expect(browser.span(index: 0).class_name).to eq 'lead'
|
47
|
+
end
|
48
|
+
|
49
|
+
it "returns an empty string if the element exists and the attribute doesn't" do
|
50
|
+
expect(browser.span(index: 2).class_name).to eq ''
|
51
|
+
end
|
52
|
+
|
53
|
+
it "raises UnknownObjectException if the span doesn't exist" do
|
54
|
+
expect { browser.span(id: 'no_such_id').class_name }.to raise_unknown_object_exception
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "#id" do
|
59
|
+
it "returns the id attribute" do
|
60
|
+
expect(browser.span(index: 0).id).to eq "lead"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "returns an empty string if the element exists and the attribute doesn't" do
|
64
|
+
expect(browser.span(index: 2).id).to eq ''
|
65
|
+
end
|
66
|
+
|
67
|
+
it "raises UnknownObjectException if the span doesn't exist" do
|
68
|
+
expect { browser.span(id: "no_such_id").id }.to raise_unknown_object_exception
|
69
|
+
expect { browser.span(index: 1337).id }.to raise_unknown_object_exception
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "#title" do
|
74
|
+
it "returns the title attribute" do
|
75
|
+
expect(browser.span(index: 0).title).to eq 'Lorem ipsum'
|
76
|
+
end
|
77
|
+
|
78
|
+
it "returns an empty string if the element exists and the attribute doesn't" do
|
79
|
+
expect(browser.span(index: 2).title).to eq ''
|
80
|
+
end
|
81
|
+
|
82
|
+
it "raises UnknownObjectException if the span doesn't exist" do
|
83
|
+
expect { browser.span(id: 'no_such_id').title }.to raise_unknown_object_exception
|
84
|
+
expect { browser.span(xpath: "//span[@id='no_such_id']").title }.to raise_unknown_object_exception
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "#text" do
|
89
|
+
it "returns the text of the span" do
|
90
|
+
expect(browser.span(index: 1).text).to eq 'Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.'
|
91
|
+
end
|
92
|
+
|
93
|
+
it "returns an empty string if the element doesn't contain any text" do
|
94
|
+
expect(browser.span(index: 4).text).to eq ''
|
95
|
+
end
|
96
|
+
|
97
|
+
it "raises UnknownObjectException if the span doesn't exist" do
|
98
|
+
expect { browser.span(id: 'no_such_id').text }.to raise_unknown_object_exception
|
99
|
+
expect { browser.span(:xpath , "//span[@id='no_such_id']").text }.to raise_unknown_object_exception
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "#respond_to?" do
|
104
|
+
it "returns true for all attribute methods" do
|
105
|
+
expect(browser.span(index: 0)).to respond_to(:class_name)
|
106
|
+
expect(browser.span(index: 0)).to respond_to(:id)
|
107
|
+
expect(browser.span(index: 0)).to respond_to(:title)
|
108
|
+
expect(browser.span(index: 0)).to respond_to(:text)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
# Other
|
113
|
+
not_compliant_on :headless do
|
114
|
+
describe "#click" do
|
115
|
+
it "fires events" do
|
116
|
+
expect(browser.span(class: 'footer').text).to_not include('Javascript')
|
117
|
+
browser.span(class: 'footer').click
|
118
|
+
expect(browser.span(class: 'footer').text).to include('Javascript')
|
119
|
+
end
|
120
|
+
|
121
|
+
it "raises UnknownObjectException if the span doesn't exist" do
|
122
|
+
expect { browser.span(id: "no_such_id").click }.to raise_unknown_object_exception
|
123
|
+
expect { browser.span(title: "no_such_title").click }.to raise_unknown_object_exception
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
@@ -1,40 +1,40 @@
|
|
1
|
-
require "watirspec_helper"
|
2
|
-
|
3
|
-
describe "Spans" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
browser.goto(WatirSpec.url_for("non_control_elements.html"))
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "with selectors" do
|
10
|
-
it "returns the matching elements" do
|
11
|
-
expect(browser.spans(class: "footer").to_a).to eq [browser.span(class: "footer")]
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#length" do
|
16
|
-
it "returns the number of spans" do
|
17
|
-
expect(browser.spans.length).to eq 7
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "#[]" do
|
22
|
-
it "returns the p at the given index" do
|
23
|
-
expect(browser.spans[0].id).to eq "lead"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "#each" do
|
28
|
-
it "iterates through spans correctly" do
|
29
|
-
count = 0
|
30
|
-
|
31
|
-
browser.spans.each_with_index do |s, index|
|
32
|
-
expect(s.id).to eq browser.span(index: index).id
|
33
|
-
count += 1
|
34
|
-
end
|
35
|
-
|
36
|
-
expect(count).to be > 0
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
1
|
+
require "watirspec_helper"
|
2
|
+
|
3
|
+
describe "Spans" do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
browser.goto(WatirSpec.url_for("non_control_elements.html"))
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "with selectors" do
|
10
|
+
it "returns the matching elements" do
|
11
|
+
expect(browser.spans(class: "footer").to_a).to eq [browser.span(class: "footer")]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#length" do
|
16
|
+
it "returns the number of spans" do
|
17
|
+
expect(browser.spans.length).to eq 7
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#[]" do
|
22
|
+
it "returns the p at the given index" do
|
23
|
+
expect(browser.spans[0].id).to eq "lead"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#each" do
|
28
|
+
it "iterates through spans correctly" do
|
29
|
+
count = 0
|
30
|
+
|
31
|
+
browser.spans.each_with_index do |s, index|
|
32
|
+
expect(s.id).to eq browser.span(index: index).id
|
33
|
+
count += 1
|
34
|
+
end
|
35
|
+
|
36
|
+
expect(count).to be > 0
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -1,88 +1,88 @@
|
|
1
|
-
require "watirspec_helper"
|
2
|
-
|
3
|
-
describe "Strong" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
browser.goto(WatirSpec.url_for("non_control_elements.html"))
|
7
|
-
end
|
8
|
-
|
9
|
-
# Exists method
|
10
|
-
describe "#exist?" do
|
11
|
-
it "returns true if the element exists" do
|
12
|
-
expect(browser.strong(id: "descartes")).to exist
|
13
|
-
expect(browser.strong(id: /descartes/)).to exist
|
14
|
-
expect(browser.strong(text: "Dubito, ergo cogito, ergo sum.")).to exist
|
15
|
-
expect(browser.strong(text: /Dubito, ergo cogito, ergo sum/)).to exist
|
16
|
-
expect(browser.strong(class: "descartes")).to exist
|
17
|
-
expect(browser.strong(class: /descartes/)).to exist
|
18
|
-
expect(browser.strong(index: 0)).to exist
|
19
|
-
expect(browser.strong(xpath: "//strong[@id='descartes']")).to exist
|
20
|
-
end
|
21
|
-
|
22
|
-
it "returns the first strong if given no args" do
|
23
|
-
expect(browser.strong).to exist
|
24
|
-
end
|
25
|
-
|
26
|
-
it "returns false if the element doesn't exist" do
|
27
|
-
expect(browser.strong(id: "no_such_id")).to_not exist
|
28
|
-
expect(browser.strong(id: /no_such_id/)).to_not exist
|
29
|
-
expect(browser.strong(text: "no_such_text")).to_not exist
|
30
|
-
expect(browser.strong(text: /no_such_text/)).to_not exist
|
31
|
-
expect(browser.strong(class: "no_such_class")).to_not exist
|
32
|
-
expect(browser.strong(class: /no_such_class/)).to_not exist
|
33
|
-
expect(browser.strong(index: 1337)).to_not exist
|
34
|
-
expect(browser.strong(xpath: "//strong[@id='no_such_id']")).to_not exist
|
35
|
-
end
|
36
|
-
|
37
|
-
it "raises TypeError when 'what' argument is invalid" do
|
38
|
-
expect { browser.strong(id: 3.14).exists? }.to raise_error(TypeError)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
# Attribute methods
|
43
|
-
describe "#class_name" do
|
44
|
-
it "returns the class attribute" do
|
45
|
-
expect(browser.strong(index: 0).class_name).to eq 'descartes'
|
46
|
-
end
|
47
|
-
|
48
|
-
it "returns an empty string if the element exists and the attribute doesn't" do
|
49
|
-
expect(browser.strong(index: 1).class_name).to eq ''
|
50
|
-
end
|
51
|
-
|
52
|
-
it "raises UnknownObjectException if the element doesn't exist" do
|
53
|
-
expect { browser.strong(id: 'no_such_id').class_name }.to raise_unknown_object_exception
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
describe "#id" do
|
58
|
-
it "returns the id attribute" do
|
59
|
-
expect(browser.strong(index: 0).id).to eq "descartes"
|
60
|
-
end
|
61
|
-
|
62
|
-
it "raises UnknownObjectException if the element doesn't exist" do
|
63
|
-
expect { browser.strong(id: "no_such_id").id }.to raise_unknown_object_exception
|
64
|
-
expect { browser.strong(index: 1337).id }.to raise_unknown_object_exception
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "#text" do
|
69
|
-
it "returns the text of the element" do
|
70
|
-
expect(browser.strong(index: 0).text).to eq "Dubito, ergo cogito, ergo sum."
|
71
|
-
end
|
72
|
-
|
73
|
-
it "raises UnknownObjectException if the element doesn't exist" do
|
74
|
-
expect { browser.strong(id: 'no_such_id').text }.to raise_unknown_object_exception
|
75
|
-
expect { browser.strong(:xpath , "//strong[@id='no_such_id']").text }.to raise_unknown_object_exception
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe "#respond_to?" do
|
80
|
-
it "returns true for all attribute methods" do
|
81
|
-
expect(browser.strong(index: 0)).to respond_to(:class_name)
|
82
|
-
expect(browser.strong(index: 0)).to respond_to(:id)
|
83
|
-
expect(browser.strong(index: 0)).to respond_to(:text)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
# Other
|
88
|
-
end
|
1
|
+
require "watirspec_helper"
|
2
|
+
|
3
|
+
describe "Strong" do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
browser.goto(WatirSpec.url_for("non_control_elements.html"))
|
7
|
+
end
|
8
|
+
|
9
|
+
# Exists method
|
10
|
+
describe "#exist?" do
|
11
|
+
it "returns true if the element exists" do
|
12
|
+
expect(browser.strong(id: "descartes")).to exist
|
13
|
+
expect(browser.strong(id: /descartes/)).to exist
|
14
|
+
expect(browser.strong(text: "Dubito, ergo cogito, ergo sum.")).to exist
|
15
|
+
expect(browser.strong(text: /Dubito, ergo cogito, ergo sum/)).to exist
|
16
|
+
expect(browser.strong(class: "descartes")).to exist
|
17
|
+
expect(browser.strong(class: /descartes/)).to exist
|
18
|
+
expect(browser.strong(index: 0)).to exist
|
19
|
+
expect(browser.strong(xpath: "//strong[@id='descartes']")).to exist
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns the first strong if given no args" do
|
23
|
+
expect(browser.strong).to exist
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns false if the element doesn't exist" do
|
27
|
+
expect(browser.strong(id: "no_such_id")).to_not exist
|
28
|
+
expect(browser.strong(id: /no_such_id/)).to_not exist
|
29
|
+
expect(browser.strong(text: "no_such_text")).to_not exist
|
30
|
+
expect(browser.strong(text: /no_such_text/)).to_not exist
|
31
|
+
expect(browser.strong(class: "no_such_class")).to_not exist
|
32
|
+
expect(browser.strong(class: /no_such_class/)).to_not exist
|
33
|
+
expect(browser.strong(index: 1337)).to_not exist
|
34
|
+
expect(browser.strong(xpath: "//strong[@id='no_such_id']")).to_not exist
|
35
|
+
end
|
36
|
+
|
37
|
+
it "raises TypeError when 'what' argument is invalid" do
|
38
|
+
expect { browser.strong(id: 3.14).exists? }.to raise_error(TypeError)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Attribute methods
|
43
|
+
describe "#class_name" do
|
44
|
+
it "returns the class attribute" do
|
45
|
+
expect(browser.strong(index: 0).class_name).to eq 'descartes'
|
46
|
+
end
|
47
|
+
|
48
|
+
it "returns an empty string if the element exists and the attribute doesn't" do
|
49
|
+
expect(browser.strong(index: 1).class_name).to eq ''
|
50
|
+
end
|
51
|
+
|
52
|
+
it "raises UnknownObjectException if the element doesn't exist" do
|
53
|
+
expect { browser.strong(id: 'no_such_id').class_name }.to raise_unknown_object_exception
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "#id" do
|
58
|
+
it "returns the id attribute" do
|
59
|
+
expect(browser.strong(index: 0).id).to eq "descartes"
|
60
|
+
end
|
61
|
+
|
62
|
+
it "raises UnknownObjectException if the element doesn't exist" do
|
63
|
+
expect { browser.strong(id: "no_such_id").id }.to raise_unknown_object_exception
|
64
|
+
expect { browser.strong(index: 1337).id }.to raise_unknown_object_exception
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "#text" do
|
69
|
+
it "returns the text of the element" do
|
70
|
+
expect(browser.strong(index: 0).text).to eq "Dubito, ergo cogito, ergo sum."
|
71
|
+
end
|
72
|
+
|
73
|
+
it "raises UnknownObjectException if the element doesn't exist" do
|
74
|
+
expect { browser.strong(id: 'no_such_id').text }.to raise_unknown_object_exception
|
75
|
+
expect { browser.strong(:xpath , "//strong[@id='no_such_id']").text }.to raise_unknown_object_exception
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "#respond_to?" do
|
80
|
+
it "returns true for all attribute methods" do
|
81
|
+
expect(browser.strong(index: 0)).to respond_to(:class_name)
|
82
|
+
expect(browser.strong(index: 0)).to respond_to(:id)
|
83
|
+
expect(browser.strong(index: 0)).to respond_to(:text)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# Other
|
88
|
+
end
|