capybara 2.7.0 → 3.35.3
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/.yardopts +1 -0
- data/History.md +1147 -11
- data/License.txt +1 -1
- data/README.md +252 -131
- data/lib/capybara/config.rb +92 -0
- data/lib/capybara/cucumber.rb +3 -3
- data/lib/capybara/driver/base.rb +52 -21
- data/lib/capybara/driver/node.rb +48 -14
- data/lib/capybara/dsl.rb +16 -9
- data/lib/capybara/helpers.rb +72 -81
- data/lib/capybara/minitest/spec.rb +267 -0
- data/lib/capybara/minitest.rb +385 -0
- data/lib/capybara/node/actions.rb +337 -89
- data/lib/capybara/node/base.rb +50 -32
- data/lib/capybara/node/document.rb +19 -3
- data/lib/capybara/node/document_matchers.rb +22 -24
- data/lib/capybara/node/element.rb +388 -125
- data/lib/capybara/node/finders.rb +231 -121
- data/lib/capybara/node/matchers.rb +503 -217
- data/lib/capybara/node/simple.rb +64 -27
- data/lib/capybara/queries/ancestor_query.rb +27 -0
- data/lib/capybara/queries/base_query.rb +87 -11
- data/lib/capybara/queries/current_path_query.rb +24 -24
- data/lib/capybara/queries/match_query.rb +15 -10
- data/lib/capybara/queries/selector_query.rb +675 -81
- data/lib/capybara/queries/sibling_query.rb +26 -0
- data/lib/capybara/queries/style_query.rb +45 -0
- data/lib/capybara/queries/text_query.rb +88 -20
- data/lib/capybara/queries/title_query.rb +9 -11
- data/lib/capybara/rack_test/browser.rb +63 -39
- data/lib/capybara/rack_test/css_handlers.rb +6 -4
- data/lib/capybara/rack_test/driver.rb +26 -16
- data/lib/capybara/rack_test/errors.rb +6 -0
- data/lib/capybara/rack_test/form.rb +73 -58
- data/lib/capybara/rack_test/node.rb +187 -67
- data/lib/capybara/rails.rb +4 -8
- data/lib/capybara/registration_container.rb +44 -0
- data/lib/capybara/registrations/drivers.rb +42 -0
- data/lib/capybara/registrations/patches/puma_ssl.rb +29 -0
- data/lib/capybara/registrations/servers.rb +45 -0
- data/lib/capybara/result.rb +142 -14
- data/lib/capybara/rspec/features.rb +17 -42
- data/lib/capybara/rspec/matcher_proxies.rb +82 -0
- data/lib/capybara/rspec/matchers/base.rb +111 -0
- data/lib/capybara/rspec/matchers/become_closed.rb +33 -0
- data/lib/capybara/rspec/matchers/compound.rb +88 -0
- data/lib/capybara/rspec/matchers/count_sugar.rb +37 -0
- data/lib/capybara/rspec/matchers/have_ancestor.rb +28 -0
- data/lib/capybara/rspec/matchers/have_current_path.rb +29 -0
- data/lib/capybara/rspec/matchers/have_selector.rb +77 -0
- data/lib/capybara/rspec/matchers/have_sibling.rb +27 -0
- data/lib/capybara/rspec/matchers/have_text.rb +33 -0
- data/lib/capybara/rspec/matchers/have_title.rb +29 -0
- data/lib/capybara/rspec/matchers/match_selector.rb +27 -0
- data/lib/capybara/rspec/matchers/match_style.rb +43 -0
- data/lib/capybara/rspec/matchers/spatial_sugar.rb +39 -0
- data/lib/capybara/rspec/matchers.rb +143 -244
- data/lib/capybara/rspec.rb +10 -12
- data/lib/capybara/selector/builders/css_builder.rb +84 -0
- data/lib/capybara/selector/builders/xpath_builder.rb +71 -0
- data/lib/capybara/selector/css.rb +102 -0
- data/lib/capybara/selector/definition/button.rb +63 -0
- data/lib/capybara/selector/definition/checkbox.rb +26 -0
- data/lib/capybara/selector/definition/css.rb +10 -0
- data/lib/capybara/selector/definition/datalist_input.rb +35 -0
- data/lib/capybara/selector/definition/datalist_option.rb +25 -0
- data/lib/capybara/selector/definition/element.rb +28 -0
- data/lib/capybara/selector/definition/field.rb +40 -0
- data/lib/capybara/selector/definition/fieldset.rb +14 -0
- data/lib/capybara/selector/definition/file_field.rb +13 -0
- data/lib/capybara/selector/definition/fillable_field.rb +33 -0
- data/lib/capybara/selector/definition/frame.rb +17 -0
- data/lib/capybara/selector/definition/id.rb +6 -0
- data/lib/capybara/selector/definition/label.rb +62 -0
- data/lib/capybara/selector/definition/link.rb +54 -0
- data/lib/capybara/selector/definition/link_or_button.rb +16 -0
- data/lib/capybara/selector/definition/option.rb +27 -0
- data/lib/capybara/selector/definition/radio_button.rb +27 -0
- data/lib/capybara/selector/definition/select.rb +81 -0
- data/lib/capybara/selector/definition/table.rb +109 -0
- data/lib/capybara/selector/definition/table_row.rb +21 -0
- data/lib/capybara/selector/definition/xpath.rb +5 -0
- data/lib/capybara/selector/definition.rb +278 -0
- data/lib/capybara/selector/filter.rb +3 -46
- data/lib/capybara/selector/filter_set.rb +124 -0
- data/lib/capybara/selector/filters/base.rb +77 -0
- data/lib/capybara/selector/filters/expression_filter.rb +22 -0
- data/lib/capybara/selector/filters/locator_filter.rb +29 -0
- data/lib/capybara/selector/filters/node_filter.rb +31 -0
- data/lib/capybara/selector/regexp_disassembler.rb +214 -0
- data/lib/capybara/selector/selector.rb +155 -0
- data/lib/capybara/selector/xpath_extensions.rb +17 -0
- data/lib/capybara/selector.rb +232 -369
- data/lib/capybara/selenium/atoms/getAttribute.min.js +1 -0
- data/lib/capybara/selenium/atoms/isDisplayed.min.js +1 -0
- data/lib/capybara/selenium/atoms/src/getAttribute.js +161 -0
- data/lib/capybara/selenium/atoms/src/isDisplayed.js +454 -0
- data/lib/capybara/selenium/driver.rb +380 -142
- data/lib/capybara/selenium/driver_specializations/chrome_driver.rb +117 -0
- data/lib/capybara/selenium/driver_specializations/edge_driver.rb +124 -0
- data/lib/capybara/selenium/driver_specializations/firefox_driver.rb +89 -0
- data/lib/capybara/selenium/driver_specializations/internet_explorer_driver.rb +26 -0
- data/lib/capybara/selenium/driver_specializations/safari_driver.rb +24 -0
- data/lib/capybara/selenium/extensions/file_input_click_emulation.rb +34 -0
- data/lib/capybara/selenium/extensions/find.rb +110 -0
- data/lib/capybara/selenium/extensions/html5_drag.rb +228 -0
- data/lib/capybara/selenium/extensions/modifier_keys_stack.rb +28 -0
- data/lib/capybara/selenium/extensions/scroll.rb +76 -0
- data/lib/capybara/selenium/logger_suppressor.rb +40 -0
- data/lib/capybara/selenium/node.rb +528 -97
- data/lib/capybara/selenium/nodes/chrome_node.rb +137 -0
- data/lib/capybara/selenium/nodes/edge_node.rb +104 -0
- data/lib/capybara/selenium/nodes/firefox_node.rb +136 -0
- data/lib/capybara/selenium/nodes/ie_node.rb +22 -0
- data/lib/capybara/selenium/nodes/safari_node.rb +118 -0
- data/lib/capybara/selenium/patches/action_pauser.rb +26 -0
- data/lib/capybara/selenium/patches/atoms.rb +18 -0
- data/lib/capybara/selenium/patches/is_displayed.rb +16 -0
- data/lib/capybara/selenium/patches/logs.rb +45 -0
- data/lib/capybara/selenium/patches/pause_duration_fix.rb +9 -0
- data/lib/capybara/selenium/patches/persistent_client.rb +20 -0
- data/lib/capybara/server/animation_disabler.rb +63 -0
- data/lib/capybara/server/checker.rb +44 -0
- data/lib/capybara/server/middleware.rb +71 -0
- data/lib/capybara/server.rb +74 -71
- data/lib/capybara/session/config.rb +126 -0
- data/lib/capybara/session/matchers.rb +44 -27
- data/lib/capybara/session.rb +500 -297
- data/lib/capybara/spec/fixtures/no_extension +1 -0
- data/lib/capybara/spec/public/jquery.js +5 -5
- data/lib/capybara/spec/public/offset.js +6 -0
- data/lib/capybara/spec/public/test.js +168 -14
- data/lib/capybara/spec/session/accept_alert_spec.rb +37 -14
- data/lib/capybara/spec/session/accept_confirm_spec.rb +7 -6
- data/lib/capybara/spec/session/accept_prompt_spec.rb +38 -10
- data/lib/capybara/spec/session/all_spec.rb +179 -59
- data/lib/capybara/spec/session/ancestor_spec.rb +88 -0
- data/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +140 -0
- data/lib/capybara/spec/session/assert_current_path_spec.rb +75 -0
- data/lib/capybara/spec/session/assert_selector_spec.rb +143 -0
- data/lib/capybara/spec/session/assert_style_spec.rb +26 -0
- data/lib/capybara/spec/session/assert_text_spec.rb +258 -0
- data/lib/capybara/spec/session/assert_title_spec.rb +93 -0
- data/lib/capybara/spec/session/attach_file_spec.rb +154 -48
- data/lib/capybara/spec/session/body_spec.rb +12 -13
- data/lib/capybara/spec/session/check_spec.rb +168 -41
- data/lib/capybara/spec/session/choose_spec.rb +75 -23
- data/lib/capybara/spec/session/click_button_spec.rb +243 -175
- data/lib/capybara/spec/session/click_link_or_button_spec.rb +57 -32
- data/lib/capybara/spec/session/click_link_spec.rb +100 -53
- data/lib/capybara/spec/session/current_scope_spec.rb +11 -10
- data/lib/capybara/spec/session/current_url_spec.rb +61 -35
- data/lib/capybara/spec/session/dismiss_confirm_spec.rb +7 -7
- data/lib/capybara/spec/session/dismiss_prompt_spec.rb +5 -4
- data/lib/capybara/spec/session/element/{assert_match_selector.rb → assert_match_selector_spec.rb} +13 -6
- data/lib/capybara/spec/session/element/match_css_spec.rb +21 -7
- data/lib/capybara/spec/session/element/match_xpath_spec.rb +9 -7
- data/lib/capybara/spec/session/element/matches_selector_spec.rb +91 -34
- data/lib/capybara/spec/session/evaluate_async_script_spec.rb +23 -0
- data/lib/capybara/spec/session/evaluate_script_spec.rb +45 -3
- data/lib/capybara/spec/session/execute_script_spec.rb +24 -4
- data/lib/capybara/spec/session/fill_in_spec.rb +166 -64
- data/lib/capybara/spec/session/find_button_spec.rb +37 -18
- data/lib/capybara/spec/session/find_by_id_spec.rb +10 -9
- data/lib/capybara/spec/session/find_field_spec.rb +57 -34
- data/lib/capybara/spec/session/find_link_spec.rb +47 -10
- data/lib/capybara/spec/session/find_spec.rb +290 -144
- data/lib/capybara/spec/session/first_spec.rb +91 -48
- data/lib/capybara/spec/session/frame/frame_title_spec.rb +23 -0
- data/lib/capybara/spec/session/frame/frame_url_spec.rb +23 -0
- data/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +116 -0
- data/lib/capybara/spec/session/frame/within_frame_spec.rb +112 -0
- data/lib/capybara/spec/session/go_back_spec.rb +3 -2
- data/lib/capybara/spec/session/go_forward_spec.rb +3 -2
- data/lib/capybara/spec/session/has_all_selectors_spec.rb +69 -0
- data/lib/capybara/spec/session/has_ancestor_spec.rb +46 -0
- data/lib/capybara/spec/session/has_any_selectors_spec.rb +25 -0
- data/lib/capybara/spec/session/has_button_spec.rb +76 -19
- data/lib/capybara/spec/session/has_css_spec.rb +277 -131
- data/lib/capybara/spec/session/has_current_path_spec.rb +98 -26
- data/lib/capybara/spec/session/has_field_spec.rb +177 -107
- data/lib/capybara/spec/session/has_link_spec.rb +13 -12
- data/lib/capybara/spec/session/has_none_selectors_spec.rb +78 -0
- data/lib/capybara/spec/session/has_select_spec.rb +191 -95
- data/lib/capybara/spec/session/has_selector_spec.rb +128 -64
- data/lib/capybara/spec/session/has_sibling_spec.rb +50 -0
- data/lib/capybara/spec/session/has_table_spec.rb +172 -5
- data/lib/capybara/spec/session/has_text_spec.rb +126 -60
- data/lib/capybara/spec/session/has_title_spec.rb +35 -12
- data/lib/capybara/spec/session/has_xpath_spec.rb +74 -53
- data/lib/capybara/spec/session/{headers.rb → headers_spec.rb} +3 -2
- data/lib/capybara/spec/session/html_spec.rb +14 -6
- data/lib/capybara/spec/session/matches_style_spec.rb +35 -0
- data/lib/capybara/spec/session/node_spec.rb +1028 -131
- data/lib/capybara/spec/session/node_wrapper_spec.rb +39 -0
- data/lib/capybara/spec/session/refresh_spec.rb +34 -0
- data/lib/capybara/spec/session/reset_session_spec.rb +75 -34
- data/lib/capybara/spec/session/{response_code.rb → response_code_spec.rb} +2 -1
- data/lib/capybara/spec/session/save_and_open_page_spec.rb +3 -2
- data/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +11 -15
- data/lib/capybara/spec/session/save_page_spec.rb +42 -55
- data/lib/capybara/spec/session/save_screenshot_spec.rb +16 -14
- data/lib/capybara/spec/session/screenshot_spec.rb +2 -2
- data/lib/capybara/spec/session/scroll_spec.rb +117 -0
- data/lib/capybara/spec/session/select_spec.rb +112 -85
- data/lib/capybara/spec/session/selectors_spec.rb +71 -8
- data/lib/capybara/spec/session/sibling_spec.rb +52 -0
- data/lib/capybara/spec/session/text_spec.rb +38 -23
- data/lib/capybara/spec/session/title_spec.rb +17 -5
- data/lib/capybara/spec/session/uncheck_spec.rb +71 -12
- data/lib/capybara/spec/session/unselect_spec.rb +44 -43
- data/lib/capybara/spec/session/visit_spec.rb +99 -32
- data/lib/capybara/spec/session/window/become_closed_spec.rb +33 -29
- data/lib/capybara/spec/session/window/current_window_spec.rb +5 -3
- data/lib/capybara/spec/session/window/open_new_window_spec.rb +5 -3
- data/lib/capybara/spec/session/window/switch_to_window_spec.rb +39 -30
- data/lib/capybara/spec/session/window/window_opened_by_spec.rb +17 -10
- data/lib/capybara/spec/session/window/window_spec.rb +121 -73
- data/lib/capybara/spec/session/window/windows_spec.rb +12 -10
- data/lib/capybara/spec/session/window/within_window_spec.rb +52 -82
- data/lib/capybara/spec/session/within_spec.rb +76 -43
- data/lib/capybara/spec/spec_helper.rb +67 -33
- data/lib/capybara/spec/test_app.rb +85 -36
- data/lib/capybara/spec/views/animated.erb +49 -0
- data/lib/capybara/spec/views/buttons.erb +1 -1
- data/lib/capybara/spec/views/fieldsets.erb +1 -1
- data/lib/capybara/spec/views/form.erb +227 -20
- data/lib/capybara/spec/views/frame_child.erb +10 -2
- data/lib/capybara/spec/views/frame_one.erb +2 -1
- data/lib/capybara/spec/views/frame_parent.erb +2 -2
- data/lib/capybara/spec/views/frame_two.erb +1 -1
- data/lib/capybara/spec/views/header_links.erb +1 -1
- data/lib/capybara/spec/views/host_links.erb +1 -1
- data/lib/capybara/spec/views/initial_alert.erb +10 -0
- data/lib/capybara/spec/views/obscured.erb +47 -0
- data/lib/capybara/spec/views/offset.erb +32 -0
- data/lib/capybara/spec/views/path.erb +1 -1
- data/lib/capybara/spec/views/popup_one.erb +1 -1
- data/lib/capybara/spec/views/popup_two.erb +1 -1
- data/lib/capybara/spec/views/postback.erb +1 -1
- data/lib/capybara/spec/views/react.erb +45 -0
- data/lib/capybara/spec/views/scroll.erb +20 -0
- data/lib/capybara/spec/views/spatial.erb +31 -0
- data/lib/capybara/spec/views/tables.erb +69 -2
- data/lib/capybara/spec/views/with_animation.erb +82 -0
- data/lib/capybara/spec/views/with_base_tag.erb +1 -1
- data/lib/capybara/spec/views/with_count.erb +1 -1
- data/lib/capybara/spec/views/with_dragula.erb +24 -0
- data/lib/capybara/spec/views/with_fixed_header_footer.erb +17 -0
- data/lib/capybara/spec/views/with_hover.erb +7 -1
- data/lib/capybara/spec/views/with_hover1.erb +10 -0
- data/lib/capybara/spec/views/with_html.erb +100 -10
- data/lib/capybara/spec/views/with_html5_svg.erb +20 -0
- data/lib/capybara/spec/views/with_html_entities.erb +1 -1
- data/lib/capybara/spec/views/with_jquery_animation.erb +24 -0
- data/lib/capybara/spec/views/with_js.erb +49 -3
- data/lib/capybara/spec/views/with_jstree.erb +26 -0
- data/lib/capybara/spec/views/with_namespace.erb +20 -0
- data/lib/capybara/spec/views/with_scope.erb +1 -1
- data/lib/capybara/spec/views/with_scope_other.erb +6 -0
- data/lib/capybara/spec/views/with_simple_html.erb +1 -1
- data/lib/capybara/spec/views/with_sortable_js.erb +21 -0
- data/lib/capybara/spec/views/with_title.erb +1 -1
- data/lib/capybara/spec/views/with_unload_alert.erb +3 -1
- data/lib/capybara/spec/views/with_windows.erb +7 -1
- data/lib/capybara/spec/views/within_frames.erb +6 -3
- data/lib/capybara/version.rb +2 -1
- data/lib/capybara/window.rb +39 -21
- data/lib/capybara.rb +208 -186
- data/spec/basic_node_spec.rb +52 -39
- data/spec/capybara_spec.rb +72 -50
- data/spec/css_builder_spec.rb +101 -0
- data/spec/css_splitter_spec.rb +38 -0
- data/spec/dsl_spec.rb +81 -61
- data/spec/filter_set_spec.rb +46 -0
- data/spec/fixtures/capybara.csv +1 -0
- data/spec/fixtures/certificate.pem +25 -0
- data/spec/fixtures/key.pem +27 -0
- data/spec/fixtures/selenium_driver_rspec_failure.rb +7 -3
- data/spec/fixtures/selenium_driver_rspec_success.rb +7 -3
- data/spec/minitest_spec.rb +164 -0
- data/spec/minitest_spec_spec.rb +162 -0
- data/spec/per_session_config_spec.rb +68 -0
- data/spec/rack_test_spec.rb +189 -96
- data/spec/regexp_dissassembler_spec.rb +250 -0
- data/spec/result_spec.rb +143 -13
- data/spec/rspec/features_spec.rb +38 -32
- data/spec/rspec/scenarios_spec.rb +9 -7
- data/spec/rspec/shared_spec_matchers.rb +959 -0
- data/spec/rspec/views_spec.rb +9 -3
- data/spec/rspec_matchers_spec.rb +62 -0
- data/spec/rspec_spec.rb +127 -30
- data/spec/sauce_spec_chrome.rb +43 -0
- data/spec/selector_spec.rb +458 -37
- data/spec/selenium_spec_chrome.rb +196 -9
- data/spec/selenium_spec_chrome_remote.rb +100 -0
- data/spec/selenium_spec_edge.rb +47 -0
- data/spec/selenium_spec_firefox.rb +210 -0
- data/spec/selenium_spec_firefox_remote.rb +80 -0
- data/spec/selenium_spec_ie.rb +150 -0
- data/spec/selenium_spec_safari.rb +148 -0
- data/spec/server_spec.rb +200 -101
- data/spec/session_spec.rb +91 -0
- data/spec/shared_selenium_node.rb +83 -0
- data/spec/shared_selenium_session.rb +558 -0
- data/spec/spec_helper.rb +94 -2
- data/spec/xpath_builder_spec.rb +93 -0
- metadata +420 -60
- data/lib/capybara/query.rb +0 -7
- data/lib/capybara/spec/session/assert_current_path.rb +0 -60
- data/lib/capybara/spec/session/assert_selector.rb +0 -148
- data/lib/capybara/spec/session/assert_text.rb +0 -196
- data/lib/capybara/spec/session/assert_title.rb +0 -70
- data/lib/capybara/spec/session/source_spec.rb +0 -0
- data/lib/capybara/spec/session/within_frame_spec.rb +0 -53
- data/spec/rspec/matchers_spec.rb +0 -827
- data/spec/selenium_spec.rb +0 -151
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
|
4
|
+
<title>with_animation</title>
|
|
5
|
+
<script src="/jquery.js" type="text/javascript" charset="utf-8"></script>
|
|
6
|
+
<script>
|
|
7
|
+
$(document).on('contextmenu', function(e){ e.preventDefault(); });
|
|
8
|
+
</script>
|
|
9
|
+
<style>
|
|
10
|
+
div {
|
|
11
|
+
width: 400px;
|
|
12
|
+
height: 400px;
|
|
13
|
+
position: absolute;
|
|
14
|
+
}
|
|
15
|
+
#obscured {
|
|
16
|
+
z-index: 1;
|
|
17
|
+
background-color: red;
|
|
18
|
+
}
|
|
19
|
+
#cover {
|
|
20
|
+
z-index: 2;
|
|
21
|
+
background-color: blue;
|
|
22
|
+
}
|
|
23
|
+
#offscreen {
|
|
24
|
+
top: 2000px;
|
|
25
|
+
left: 2000px;
|
|
26
|
+
background-color: green;
|
|
27
|
+
}
|
|
28
|
+
#offscreen_wrapper {
|
|
29
|
+
top: 2000px;
|
|
30
|
+
left: 2000px;
|
|
31
|
+
overflow-x: scroll;
|
|
32
|
+
background-color: yellow;
|
|
33
|
+
}
|
|
34
|
+
</style>
|
|
35
|
+
</head>
|
|
36
|
+
|
|
37
|
+
<body id="with_animation">
|
|
38
|
+
<div id="obscured">
|
|
39
|
+
<input id="obscured_input"/>
|
|
40
|
+
</div>
|
|
41
|
+
<div id="cover"></div>
|
|
42
|
+
<div id="offscreen_wrapper">
|
|
43
|
+
<div id="offscreen"></div>
|
|
44
|
+
</div>
|
|
45
|
+
</body>
|
|
46
|
+
|
|
47
|
+
<iframe id="frameOne" src="/frame_one"></iframe>
|
|
48
|
+
</html>
|
|
49
|
+
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
2
|
<h1>Form</h1>
|
|
3
3
|
|
|
4
|
-
<form action="/form" method="post">
|
|
4
|
+
<form action="/form" method="post" novalidate>
|
|
5
5
|
|
|
6
6
|
<p>
|
|
7
7
|
<label for="form_title">Title</label>
|
|
8
|
-
<select name="form[title]" id="form_title">
|
|
9
|
-
<option>Mrs</option>
|
|
10
|
-
<option>Mr</option>
|
|
8
|
+
<select name="form[title]" id="form_title" class="title">
|
|
9
|
+
<option class="title">Mrs</option>
|
|
10
|
+
<option class="title">Mr</option>
|
|
11
11
|
<option>Miss</option>
|
|
12
12
|
<option disabled="disabled">Other</option>
|
|
13
13
|
</select>
|
|
14
|
-
|
|
14
|
+
</p>
|
|
15
15
|
|
|
16
16
|
<p>
|
|
17
17
|
<label for="customer_name">Customer Name
|
|
@@ -25,6 +25,12 @@
|
|
|
25
25
|
</label>
|
|
26
26
|
</p>
|
|
27
27
|
|
|
28
|
+
<p>
|
|
29
|
+
<label for="customer_other_email">Customer Other Email
|
|
30
|
+
<input type="text" name="form[customer_other_email]" value="notben@notben.com" id="customer_other_email"/>
|
|
31
|
+
</label>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
28
34
|
<p>
|
|
29
35
|
<label for="form_other_title">Other title</label>
|
|
30
36
|
<select name="form[other_title]" id="form_other_title">
|
|
@@ -37,7 +43,7 @@
|
|
|
37
43
|
<p>
|
|
38
44
|
<label for="form_first_name">
|
|
39
45
|
First Name
|
|
40
|
-
<input type="text" name="form[first_name]" value="John" id="form_first_name"/>
|
|
46
|
+
<input type="text" name="form[first_name]" value="John" id="form_first_name" placeholder="FirstName"/>
|
|
41
47
|
</label>
|
|
42
48
|
</p>
|
|
43
49
|
|
|
@@ -56,6 +62,11 @@
|
|
|
56
62
|
<input type="text" name="form[name]" value="John Smith" id="form_name"/>
|
|
57
63
|
</p>
|
|
58
64
|
|
|
65
|
+
<p>
|
|
66
|
+
<label for="form_age">Age</label>
|
|
67
|
+
<input type="range" name="form[age]" value="18" min="13" max="100" step="0.5" id="form_age"/>
|
|
68
|
+
</p>
|
|
69
|
+
|
|
59
70
|
<p>
|
|
60
71
|
<label for="form_schmooo">Schmooo</label>
|
|
61
72
|
<input type="schmooo" name="form[schmooo]" value="This is Schmooo!" id="form_schmooo"/>
|
|
@@ -88,6 +99,11 @@
|
|
|
88
99
|
<input type="file" name="form[image]" id="form_image"/>
|
|
89
100
|
</p>
|
|
90
101
|
|
|
102
|
+
<p>
|
|
103
|
+
<label for="form_hidden_image">Hidden Image</label>
|
|
104
|
+
<input type="file" name="form[hidden_image]" id="form_hidden_image" style="display: none"/>
|
|
105
|
+
</p>
|
|
106
|
+
|
|
91
107
|
<p>
|
|
92
108
|
<input type="hidden" name="form[token]" value="12345" id="form_token"/>
|
|
93
109
|
</p>
|
|
@@ -97,7 +113,7 @@
|
|
|
97
113
|
<select name="form[locale]" id="form_locale">
|
|
98
114
|
<option value="sv">Swedish</option>
|
|
99
115
|
<option selected="selected" value="en">English</option>
|
|
100
|
-
<option value="fi">
|
|
116
|
+
<option value="fi">Finnish</option>
|
|
101
117
|
<option value="no">Norwegian</option>
|
|
102
118
|
<option value="jo">John's made-up language</option>
|
|
103
119
|
<option value="jbo"> Lojban </option>
|
|
@@ -124,7 +140,11 @@
|
|
|
124
140
|
|
|
125
141
|
<p>
|
|
126
142
|
<label for="form_zipcode">Zipcode</label>
|
|
127
|
-
<input type="text" maxlength="5" name="form[zipcode]" id="form_zipcode" />
|
|
143
|
+
<input type="text" maxlength="5" name="form[zipcode]" id="form_zipcode" pattern="[0-9]{5,9}" />
|
|
144
|
+
</p>
|
|
145
|
+
|
|
146
|
+
<p>
|
|
147
|
+
<input maxlength="35" id="long_length" />
|
|
128
148
|
</p>
|
|
129
149
|
|
|
130
150
|
<p>
|
|
@@ -154,6 +174,15 @@ New line after and before textarea tag
|
|
|
154
174
|
<label for="gender_both">Both</label>
|
|
155
175
|
</p>
|
|
156
176
|
|
|
177
|
+
<p>
|
|
178
|
+
<input type="radio" name="form[party]" value="democrat" id="party_democrat" style="display:none"/>
|
|
179
|
+
<label for="party_democrat">Democrat</label>
|
|
180
|
+
<input type="radio" name="form[party]" value="republican" id="party_republican" style="display:none"/>
|
|
181
|
+
<label for="party_republican">Republican</label>
|
|
182
|
+
<input type="radio" name="form[party]" value="independent" id="party_independent" checked="checked" style="display:none"/>
|
|
183
|
+
<label for="party_independent">Independent</label>
|
|
184
|
+
</p>
|
|
185
|
+
|
|
157
186
|
<p>
|
|
158
187
|
<input type="checkbox" id="no_attr_value_checked" value="1" checked/>
|
|
159
188
|
</p>
|
|
@@ -167,6 +196,44 @@ New line after and before textarea tag
|
|
|
167
196
|
<label for="form_pets_hamster">Hamster</label>
|
|
168
197
|
</p>
|
|
169
198
|
|
|
199
|
+
<p>
|
|
200
|
+
<input type="checkbox" value="jaguar" name="form[cars][]" id="form_cars_jaguar" checked="checked" style="display: none"/>
|
|
201
|
+
<label for="form_cars_jaguar">Jaguar</label>
|
|
202
|
+
<input type="checkbox" value="tesla" name="form[cars][]" id="form_cars_tesla" style="display: none"/>
|
|
203
|
+
<label for="form_cars_tesla">Tesla</label>
|
|
204
|
+
<input type="checkbox" value="ferrari" name="form[cars][]" id="form_cars_ferrari" checked="checked" style="display: none"/>
|
|
205
|
+
<label for="form_cars_ferrari">Ferrari</label>
|
|
206
|
+
<input type="checkbox" value="pagani" name="form[cars][]" id="form_cars_pagani" style="position: absolute; left: -9999px"/>
|
|
207
|
+
<label for="form_cars_pagani">Pagani</label>
|
|
208
|
+
<div style="position: relative;">
|
|
209
|
+
<input type="checkbox" value="bugatti" name="form[cars][]" id="form_cars_bugatti"/>
|
|
210
|
+
<div style="position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-color: #fff;">
|
|
211
|
+
<label for="form_cars_bugatti">Bugatti</label>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
<input type="checkbox" value="ariel" name="form[cars][]" id="form_cars_ariel" style="display: none"/>
|
|
215
|
+
<input type="checkbox" value="porsche" name="form[cars][]" id="form_cars_porsche" checked="checked" style="display: none"/>
|
|
216
|
+
<label>
|
|
217
|
+
McLaren
|
|
218
|
+
<input type="checkbox" value="mclaren" name="form[cars][]" id="form_cars_mclaren" style="display: none"/>
|
|
219
|
+
</label>
|
|
220
|
+
<label>
|
|
221
|
+
Koenigsegg
|
|
222
|
+
<input type="checkbox" value="koenigsegg" name="form[cars][]" id="form_cars_koenigsegg" checked="checked" style="display: none"/>
|
|
223
|
+
</label>
|
|
224
|
+
<input type="checkbox" value="maserati" name="form[cars][]" id="form_cars_maserati" disabled="disabled"/>
|
|
225
|
+
<label for="form_cars_maserati">Maserati</label>
|
|
226
|
+
</p>
|
|
227
|
+
|
|
228
|
+
<p>
|
|
229
|
+
<input type="text" name="form[manufacturer]" list="manufacturers" id="manufacturer"/>
|
|
230
|
+
<datalist id="manufacturers">
|
|
231
|
+
<option value="Jaguar">J</option>
|
|
232
|
+
<option value="Audi">
|
|
233
|
+
<option value="Mercedes" disabled>
|
|
234
|
+
</datalist>
|
|
235
|
+
</p>
|
|
236
|
+
|
|
170
237
|
<p>
|
|
171
238
|
<input type="checkbox" name="form[valueless_checkbox]" id="valueless_checkbox" checked="checked"/>
|
|
172
239
|
<label for="valueless_checkbox">Valueless Checkbox</label>
|
|
@@ -206,6 +273,17 @@ New line after and before textarea tag
|
|
|
206
273
|
</select>
|
|
207
274
|
</p>
|
|
208
275
|
|
|
276
|
+
<!-- invisible multiselect and options -->
|
|
277
|
+
<p style="display: none">
|
|
278
|
+
<label for="form_dessert">Dessert</label>
|
|
279
|
+
<select name="form[dessert]" id="form_dessert" multiple="multiple">
|
|
280
|
+
<option selected="selected">Pudding</option>
|
|
281
|
+
<option>Lava cake</option>
|
|
282
|
+
<option selected="selected">Tiramisu</option>
|
|
283
|
+
<option>Panna cotta</option>
|
|
284
|
+
</select>
|
|
285
|
+
</p>
|
|
286
|
+
|
|
209
287
|
<!-- visible select with invisible selected option (which some browsers may treat as visible) -->
|
|
210
288
|
<p>
|
|
211
289
|
<label for="form_sorbet">Sorbet</label>
|
|
@@ -216,6 +294,17 @@ New line after and before textarea tag
|
|
|
216
294
|
</select>
|
|
217
295
|
</p>
|
|
218
296
|
|
|
297
|
+
<!-- visible multiselect with invisible selected options (which some browsers may treat as visible) -->
|
|
298
|
+
<p>
|
|
299
|
+
<label for="form_cake">Cake</label>
|
|
300
|
+
<select name="form[cake]" id="form_cake" multiple="multiple">
|
|
301
|
+
<option>Butter Cake</option>
|
|
302
|
+
<option selected="selected" style="display: none">Chocolate Cake</option>
|
|
303
|
+
<option>Strawberry Cake</option>
|
|
304
|
+
<option selected="selected" style="display: none">Sponge Cake</option>
|
|
305
|
+
</select>
|
|
306
|
+
</p>
|
|
307
|
+
|
|
219
308
|
<p>
|
|
220
309
|
<span>First address<span>
|
|
221
310
|
<label for='address1_street'>Street</label>
|
|
@@ -226,7 +315,7 @@ New line after and before textarea tag
|
|
|
226
315
|
|
|
227
316
|
<label for='address1_country'>Country</label>
|
|
228
317
|
<select name="form[addresses][][country]" id="address1_country">
|
|
229
|
-
<option>France</option>
|
|
318
|
+
<option selected>France</option>
|
|
230
319
|
<option>Ukraine</option>
|
|
231
320
|
</select>
|
|
232
321
|
</p>
|
|
@@ -242,7 +331,7 @@ New line after and before textarea tag
|
|
|
242
331
|
<label for='address2_country'>Country</label>
|
|
243
332
|
<select name="form[addresses][][country]" id="address2_country">
|
|
244
333
|
<option>France</option>
|
|
245
|
-
<option>Ukraine</option>
|
|
334
|
+
<option selected>Ukraine</option>
|
|
246
335
|
</select>
|
|
247
336
|
</p>
|
|
248
337
|
|
|
@@ -293,6 +382,9 @@ New line after and before textarea tag
|
|
|
293
382
|
Disabled Select
|
|
294
383
|
<select name="form[disabled_select]" id="form_disabled_select" disabled="disabled">
|
|
295
384
|
<option value="Should not see me" selected="selected">Should not see me</option>
|
|
385
|
+
<optgroup>
|
|
386
|
+
<option value="Disabled too">Disabled too</option>
|
|
387
|
+
</optgroup>
|
|
296
388
|
</select>
|
|
297
389
|
</label>
|
|
298
390
|
</p>
|
|
@@ -306,7 +398,6 @@ New line after and before textarea tag
|
|
|
306
398
|
</label>
|
|
307
399
|
</p>
|
|
308
400
|
|
|
309
|
-
|
|
310
401
|
<p>
|
|
311
402
|
<label for="form_disabled_file">
|
|
312
403
|
Disabled File
|
|
@@ -314,21 +405,86 @@ New line after and before textarea tag
|
|
|
314
405
|
</label>
|
|
315
406
|
</p>
|
|
316
407
|
|
|
408
|
+
<fieldset>
|
|
409
|
+
<input name="form[enabled_fieldset_child]" id="form_enabled_fieldset_child"/>
|
|
410
|
+
</fieldset>
|
|
411
|
+
|
|
412
|
+
<fieldset disabled="disabled" id="form_disabled_fieldset">
|
|
413
|
+
<legend>Disabled Child</legend>
|
|
414
|
+
<input name="form[disabled_fieldset_child]" id="form_disabled_fieldset_child"/>
|
|
415
|
+
<select>
|
|
416
|
+
<option>Disabled Child Option</option>
|
|
417
|
+
</select>
|
|
418
|
+
</fieldset>
|
|
419
|
+
|
|
420
|
+
<fieldset disabled="disabled">
|
|
421
|
+
<legend>
|
|
422
|
+
Nested Disabled
|
|
423
|
+
<input type="checkbox" name="form[disabled_fieldeset_legend_child]" id="form_disabled_fieldset_legend_child"/>
|
|
424
|
+
</legend>
|
|
425
|
+
<legend>
|
|
426
|
+
Another WLegend
|
|
427
|
+
<input type="checkbox" name="form[disabled_fieldeset_second_legend_child]" id="form_disabled_fieldset_second_legend_child"/>
|
|
428
|
+
</legend>
|
|
429
|
+
<fieldset>
|
|
430
|
+
<legend>
|
|
431
|
+
Disabled?
|
|
432
|
+
<input id="form_disabled_fieldset_descendant_legend_child">
|
|
433
|
+
</legend>
|
|
434
|
+
<input name="form[disabled_fieldset_descendant]" id="form_disabled_fieldset_descendant"/>
|
|
435
|
+
</fieldset>
|
|
436
|
+
</fieldset>
|
|
437
|
+
|
|
438
|
+
<p>
|
|
439
|
+
<select data-test-id="my_test_id">
|
|
440
|
+
<optgroup label="Level One">
|
|
441
|
+
<option> A.1 </option>
|
|
442
|
+
</optgroup>
|
|
443
|
+
<optgroup label="Level Two" disabled="disabled">
|
|
444
|
+
<option> A.B.1 </option>
|
|
445
|
+
</optgroup>
|
|
446
|
+
<option> A.2 </option>
|
|
447
|
+
</select>
|
|
448
|
+
</p>
|
|
449
|
+
|
|
317
450
|
<p>
|
|
318
|
-
<input type="button" name="form[fresh]" id="fresh_btn" value="i am fresh"/>
|
|
319
|
-
<input type="submit" name="form[awesome]" id="awe123" title="What an Awesome Button" value="awesome"/>
|
|
451
|
+
<input type="button" aria-label="Aria button" name="form[fresh]" id="fresh_btn" value="i am fresh"/>
|
|
452
|
+
<input type="submit" name="form[awesome]" id="awe123" data-test-id="test_id_button" title="What an Awesome Button" value="awesome"/>
|
|
320
453
|
<input type="submit" name="form[crappy]" id="crap321" value="crappy"/>
|
|
321
454
|
<input type="image" name="form[okay]" id="okay556" title="Okay 556 Image" value="okay" alt="oh hai thar"/>
|
|
322
455
|
<button type="submit" id="click_me_123" title="Click Title button" value="click_me">Click me!</button>
|
|
323
456
|
<button type="submit" name="form[no_value]">No Value!</button>
|
|
324
457
|
<button id="no_type">No Type!</button>
|
|
458
|
+
<button><img alt="A horse eating hay"/></button>
|
|
459
|
+
<button id="button_with_label"></button>
|
|
460
|
+
<label for="button_with_label">button with label element</label>
|
|
461
|
+
<label>
|
|
462
|
+
button within label element
|
|
463
|
+
<button></button>
|
|
464
|
+
</label>
|
|
465
|
+
<label>
|
|
466
|
+
role=button within label element
|
|
467
|
+
<span role="button">with other text</span>
|
|
468
|
+
</label>
|
|
325
469
|
<input type="button" disabled="disabled" value="Disabled button"/>
|
|
470
|
+
<span role="button">ARIA button</span>
|
|
471
|
+
</p>
|
|
472
|
+
|
|
473
|
+
<p>
|
|
474
|
+
<input type="date" name="form[date]" id="form_date"/>
|
|
475
|
+
<input type="time" name="form[time]" id="form_time"/>
|
|
476
|
+
<input type="datetime-local" name="form[datetime]" id="form_datetime">
|
|
326
477
|
</p>
|
|
327
478
|
|
|
328
479
|
<p>
|
|
329
480
|
<input id="readonly" name="form[readonly_test]" readonly/>
|
|
330
481
|
<input id="not_readonly" name="form[readonly_test]" />
|
|
331
482
|
</p>
|
|
483
|
+
|
|
484
|
+
<p>
|
|
485
|
+
<input id="required" name="form[required]" required />
|
|
486
|
+
<input id="length" name="form[length]" minlength="4" maxlength="4" />
|
|
487
|
+
</p>
|
|
332
488
|
</form>
|
|
333
489
|
|
|
334
490
|
<input type="text" name="form[outside_input]" value="outside_input" form="form1"/>
|
|
@@ -338,14 +494,21 @@ New line after and before textarea tag
|
|
|
338
494
|
<input type="text" name="nested_label" id="nested_label"/>
|
|
339
495
|
</label>
|
|
340
496
|
|
|
497
|
+
<label id="wrapper_label">
|
|
498
|
+
Wrapper Label
|
|
499
|
+
<input type="checkbox"/>
|
|
500
|
+
</label>
|
|
501
|
+
|
|
341
502
|
<form id="form1" action="/form" method="post">
|
|
342
503
|
<input type="text" name="form[which_form]" value="form1" id="form_which_form"/>
|
|
343
504
|
<input type="text" name="form[for_form2]" value="for_form2" form="form2"/>
|
|
344
505
|
<input type="submit" name="form[submit_form1]" value="submit_form1" id="submit_form1"/>
|
|
345
506
|
</form>
|
|
346
507
|
|
|
508
|
+
<button type="submit" name="form[outside_button]" value="outside_button" form="form2">Outside!</button>
|
|
509
|
+
|
|
347
510
|
<form id="form2" action="/form" method="post">
|
|
348
|
-
<input type="text" name="form[which_form]" value="form2" id="
|
|
511
|
+
<input type="text" name="form[which_form]" value="form2" id="form_which_form2"/>
|
|
349
512
|
<input type="submit" name="form[unused]" value="unused"/>
|
|
350
513
|
<button type="submit" name="form[other_form_button]" value="other_form_button" form="form1">Form1</button>
|
|
351
514
|
</form>
|
|
@@ -360,8 +523,6 @@ New line after and before textarea tag
|
|
|
360
523
|
</select>
|
|
361
524
|
|
|
362
525
|
<input type="submit" name="form[outside_submit]" value="outside_submit" form="form1"/>
|
|
363
|
-
<button type="submit" name="form[outside_button]" value="outside_button" form="form2">Outside!</button>
|
|
364
|
-
|
|
365
526
|
|
|
366
527
|
<form id="get-form" action="/form/get?foo=bar" method="get">
|
|
367
528
|
<p>
|
|
@@ -370,7 +531,8 @@ New line after and before textarea tag
|
|
|
370
531
|
</p>
|
|
371
532
|
|
|
372
533
|
<p>
|
|
373
|
-
<input type="submit" name="form[mediocre]" id="mediocre" value="med"/>
|
|
534
|
+
<input type="submit" name="form[mediocre]" id="mediocre" value="med" aria-label="Mediocre Button"/>
|
|
535
|
+
<input type="submit" formaction="/form/get?bar=foo" id="mediocre2" value="med2"/>
|
|
374
536
|
<p>
|
|
375
537
|
</form>
|
|
376
538
|
|
|
@@ -427,6 +589,11 @@ New line after and before textarea tag
|
|
|
427
589
|
<input type="file" name="form[multiple_documents][]" id="form_multiple_documents" multiple="multiple" />
|
|
428
590
|
</p>
|
|
429
591
|
|
|
592
|
+
<p>
|
|
593
|
+
<label for="form_directory_upload">Directory Upload</label>
|
|
594
|
+
<input type="file" name="form[multiple_documents][]" id="form_directory_upload" multiple="multiple" webkitdirectory="webkitdirectory" mozdirectory="mozdirectory" />
|
|
595
|
+
</p>
|
|
596
|
+
|
|
430
597
|
<p>
|
|
431
598
|
<input type="submit" value="Upload Multiple"/>
|
|
432
599
|
<p>
|
|
@@ -436,6 +603,14 @@ New line after and before textarea tag
|
|
|
436
603
|
<p>
|
|
437
604
|
<input type="submit" value="Go FAR"/>
|
|
438
605
|
</p>
|
|
606
|
+
|
|
607
|
+
<input type="hidden" name="form[data]" value="TWTW"/>
|
|
608
|
+
<p>
|
|
609
|
+
<button formaction='/redirect_307'>Go 307</button>
|
|
610
|
+
</p>
|
|
611
|
+
<p>
|
|
612
|
+
<button formaction='/redirect_308'>Go 308</button>
|
|
613
|
+
</p>
|
|
439
614
|
</form>
|
|
440
615
|
|
|
441
616
|
<form action="/form" method="post">
|
|
@@ -455,9 +630,10 @@ New line after and before textarea tag
|
|
|
455
630
|
<label for="html5_search">Html5 Search</label>
|
|
456
631
|
<input type="search" name="form[html5_search]" value="what are you looking for" id="html5_search"/>
|
|
457
632
|
</p>
|
|
633
|
+
<p id="emergency">Emergency Number</p>
|
|
458
634
|
<p>
|
|
459
635
|
<label for="html5_tel">Html5 Tel</label>
|
|
460
|
-
<input type="tel" name="form[html5_tel]" value="911" id="html5_tel"/>
|
|
636
|
+
<input type="tel" aria-labelledby="emergency" name="form[html5_tel]" value="911" id="html5_tel"/>
|
|
461
637
|
</p>
|
|
462
638
|
<p>
|
|
463
639
|
<label for="html5_color">Html5 Color</label>
|
|
@@ -480,7 +656,7 @@ New line after and before textarea tag
|
|
|
480
656
|
|
|
481
657
|
<form action="/other_form" method="post">
|
|
482
658
|
<p>
|
|
483
|
-
<input type="text" name="form[which_form]" value="formaction form"/>
|
|
659
|
+
<input type="text" name="form[which_form]" value="formaction form" aria-label="Unlabelled Input"/>
|
|
484
660
|
</p>
|
|
485
661
|
<input type="submit" name="form[button]" formaction="/form" value="Formaction button"/>
|
|
486
662
|
<input type="submit" name="form[button]" formaction="/form/get" formmethod="get" value="Formmethod button"/>
|
|
@@ -498,4 +674,35 @@ New line after and before textarea tag
|
|
|
498
674
|
</p>
|
|
499
675
|
</form>
|
|
500
676
|
|
|
677
|
+
<label>Confusion
|
|
678
|
+
<input type="checkbox" id="confusion_checkbox" class="confusion-checkbox confusion"/>
|
|
679
|
+
</label>
|
|
680
|
+
|
|
681
|
+
<label>Confusion
|
|
682
|
+
<input type="text" id="confusion_text" class="confusion-text confusion"/>
|
|
683
|
+
</label>
|
|
684
|
+
|
|
685
|
+
<label>Confusion
|
|
686
|
+
<textarea id="confusion_textarea" class="confusion confusion-textarea"></textarea>
|
|
687
|
+
</label>
|
|
688
|
+
|
|
689
|
+
<p>
|
|
690
|
+
<label for="asterisk_input">With Asterisk<abbr title="required">*</abbr></label>
|
|
691
|
+
<input id="asterisk_input" type="number"value="2016"/>
|
|
692
|
+
</p>
|
|
693
|
+
|
|
694
|
+
<p>
|
|
695
|
+
<input id="special" {custom}="abcdef" value="custom attribute"/>
|
|
696
|
+
</p>
|
|
501
697
|
|
|
698
|
+
|
|
699
|
+
<label for="multi_label_checkbox">
|
|
700
|
+
Label to click
|
|
701
|
+
</label>
|
|
702
|
+
<div>Something random that justifies the usage of a separate label</div>
|
|
703
|
+
<label>
|
|
704
|
+
<div>
|
|
705
|
+
<input type="checkbox" id="multi_label_checkbox" style="display: none"/>
|
|
706
|
+
<div>Visual representation of the checkbox</div>
|
|
707
|
+
</div>
|
|
708
|
+
</label>
|