page_object 1.1.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 +7 -0
- data/.gitignore +7 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +7 -0
- data/ChangeLog +809 -0
- data/Gemfile +14 -0
- data/Guardfile +20 -0
- data/LICENSE +20 -0
- data/README.md +111 -0
- data/Rakefile +35 -0
- data/cucumber.yml +10 -0
- data/features/area.feature +35 -0
- data/features/async.feature +30 -0
- data/features/audio.feature +68 -0
- data/features/bold.feature +21 -0
- data/features/button.feature +98 -0
- data/features/canvas.feature +37 -0
- data/features/check_box.feature +55 -0
- data/features/div.feature +45 -0
- data/features/element.feature +322 -0
- data/features/file_field.feature +40 -0
- data/features/form.feature +43 -0
- data/features/frames.feature +75 -0
- data/features/generic_elements.feature +29 -0
- data/features/gxt_table_extension.feature +24 -0
- data/features/headings.feature +97 -0
- data/features/hidden_field.feature +45 -0
- data/features/html/04-Death_Becomes_Fur.mp4 +0 -0
- data/features/html/04-Death_Becomes_Fur.oga +0 -0
- data/features/html/async.html +36 -0
- data/features/html/double_click.html +13 -0
- data/features/html/failure.html +8 -0
- data/features/html/frame_1.html +18 -0
- data/features/html/frame_2.html +16 -0
- data/features/html/frame_3.html +14 -0
- data/features/html/frames.html +12 -0
- data/features/html/hover.html +12 -0
- data/features/html/iframes.html +12 -0
- data/features/html/images/circle.png +0 -0
- data/features/html/images/img_pulpit.jpg +0 -0
- data/features/html/images/submit.gif +0 -0
- data/features/html/indexed_property.html +55 -0
- data/features/html/modal.html +17 -0
- data/features/html/modal_1.html +38 -0
- data/features/html/modal_2.html +27 -0
- data/features/html/movie.mp4 +0 -0
- data/features/html/movie.ogg +0 -0
- data/features/html/multi_elements.html +144 -0
- data/features/html/nested_elements.html +77 -0
- data/features/html/nested_frame_1.html +1 -0
- data/features/html/nested_frame_2.html +11 -0
- data/features/html/nested_frame_3.html +14 -0
- data/features/html/nested_frames.html +10 -0
- data/features/html/planets.gif +0 -0
- data/features/html/static_elements.html +207 -0
- data/features/html/success.html +8 -0
- data/features/html/sun.gif +0 -0
- data/features/html/sun.html +7 -0
- data/features/image.feature +50 -0
- data/features/indexed_property.feature +117 -0
- data/features/javascript.feature +28 -0
- data/features/label.feature +46 -0
- data/features/link.feature +52 -0
- data/features/list_item.feature +36 -0
- data/features/modal_dialog.feature +15 -0
- data/features/multi_elements.feature +492 -0
- data/features/nested_elements.feature +117 -0
- data/features/ordered_list.feature +56 -0
- data/features/page_level_actions.feature +90 -0
- data/features/paragraph.feature +35 -0
- data/features/radio_button.feature +58 -0
- data/features/radio_button_group.feature +29 -0
- data/features/sample-app/public/jquery-1.3.2.js +4376 -0
- data/features/sample-app/public/jquery.html +30 -0
- data/features/sample-app/public/prototype-1.6.0.3.js +4320 -0
- data/features/sample-app/public/prototype.html +35 -0
- data/features/sample-app/sample_app.rb +35 -0
- data/features/section.feature +132 -0
- data/features/select_list.feature +86 -0
- data/features/span.feature +37 -0
- data/features/step_definitions/accessor_steps.rb +64 -0
- data/features/step_definitions/area_steps.rb +19 -0
- data/features/step_definitions/async_steps.rb +83 -0
- data/features/step_definitions/audio_steps.rb +27 -0
- data/features/step_definitions/bold_steps.rb +12 -0
- data/features/step_definitions/button_steps.rb +48 -0
- data/features/step_definitions/canvas_steps.rb +15 -0
- data/features/step_definitions/check_box_steps.rb +35 -0
- data/features/step_definitions/div_steps.rb +19 -0
- data/features/step_definitions/element_steps.rb +266 -0
- data/features/step_definitions/file_field_steps.rb +19 -0
- data/features/step_definitions/form_steps.rb +19 -0
- data/features/step_definitions/frames_steps.rb +159 -0
- data/features/step_definitions/generic_element_steps.rb +31 -0
- data/features/step_definitions/gxt_table_steps.rb +58 -0
- data/features/step_definitions/headings_steps.rb +12 -0
- data/features/step_definitions/hidden_field_steps.rb +27 -0
- data/features/step_definitions/image_steps.rb +27 -0
- data/features/step_definitions/indexed_property_steps.rb +163 -0
- data/features/step_definitions/javascript_steps.rb +53 -0
- data/features/step_definitions/label_steps.rb +19 -0
- data/features/step_definitions/link_steps.rb +40 -0
- data/features/step_definitions/list_item_steps.rb +19 -0
- data/features/step_definitions/modal_dialog_steps.rb +62 -0
- data/features/step_definitions/multi_elements_steps.rb +541 -0
- data/features/step_definitions/nested_elements_steps.rb +212 -0
- data/features/step_definitions/ordered_list_steps.rb +23 -0
- data/features/step_definitions/page_level_actions_steps.rb +135 -0
- data/features/step_definitions/page_traversal_steps.rb +4 -0
- data/features/step_definitions/paragraph_steps.rb +28 -0
- data/features/step_definitions/radio_button_group_steps.rb +36 -0
- data/features/step_definitions/radio_button_steps.rb +27 -0
- data/features/step_definitions/section_steps.rb +268 -0
- data/features/step_definitions/select_list_steps.rb +65 -0
- data/features/step_definitions/span_steps.rb +19 -0
- data/features/step_definitions/table_cell_steps.rb +15 -0
- data/features/step_definitions/table_row_steps.rb +23 -0
- data/features/step_definitions/table_steps.rb +70 -0
- data/features/step_definitions/text_area_steps.rb +35 -0
- data/features/step_definitions/text_field_steps.rb +35 -0
- data/features/step_definitions/unordered_list_steps.rb +23 -0
- data/features/step_definitions/video_steps.rb +45 -0
- data/features/support/ajax_text_environment.rb +26 -0
- data/features/support/env.rb +8 -0
- data/features/support/hooks.rb +8 -0
- data/features/support/page.rb +382 -0
- data/features/support/persistent_browser.rb +70 -0
- data/features/support/targets/firefox14_osx.rb +6 -0
- data/features/support/targets/firefox14_windows7.rb +6 -0
- data/features/support/url_helper.rb +57 -0
- data/features/table.feature +122 -0
- data/features/table_cell.feature +45 -0
- data/features/table_row.feature +43 -0
- data/features/text_area.feature +51 -0
- data/features/text_field.feature +70 -0
- data/features/unordered_list.feature +56 -0
- data/features/video.feature +73 -0
- data/lib/page-object.rb +421 -0
- data/lib/page-object/accessors.rb +1412 -0
- data/lib/page-object/core_ext/string.rb +5 -0
- data/lib/page-object/element_locators.rb +21 -0
- data/lib/page-object/elements.rb +60 -0
- data/lib/page-object/elements/area.rb +31 -0
- data/lib/page-object/elements/audio.rb +9 -0
- data/lib/page-object/elements/bold.rb +11 -0
- data/lib/page-object/elements/button.rb +35 -0
- data/lib/page-object/elements/canvas.rb +23 -0
- data/lib/page-object/elements/check_box.rb +37 -0
- data/lib/page-object/elements/div.rb +19 -0
- data/lib/page-object/elements/element.rb +226 -0
- data/lib/page-object/elements/file_field.rb +38 -0
- data/lib/page-object/elements/form.rb +36 -0
- data/lib/page-object/elements/heading.rb +15 -0
- data/lib/page-object/elements/hidden_field.rb +22 -0
- data/lib/page-object/elements/image.rb +36 -0
- data/lib/page-object/elements/label.rb +19 -0
- data/lib/page-object/elements/link.rb +46 -0
- data/lib/page-object/elements/list_item.rb +19 -0
- data/lib/page-object/elements/media.rb +45 -0
- data/lib/page-object/elements/option.rb +10 -0
- data/lib/page-object/elements/ordered_list.rb +50 -0
- data/lib/page-object/elements/paragraph.rb +9 -0
- data/lib/page-object/elements/radio_button.rb +37 -0
- data/lib/page-object/elements/select_list.rb +42 -0
- data/lib/page-object/elements/span.rb +19 -0
- data/lib/page-object/elements/table.rb +79 -0
- data/lib/page-object/elements/table_cell.rb +28 -0
- data/lib/page-object/elements/table_row.rb +50 -0
- data/lib/page-object/elements/text_area.rb +38 -0
- data/lib/page-object/elements/text_field.rb +42 -0
- data/lib/page-object/elements/unordered_list.rb +51 -0
- data/lib/page-object/elements/video.rb +18 -0
- data/lib/page-object/indexed_properties.rb +40 -0
- data/lib/page-object/javascript/angularjs.rb +14 -0
- data/lib/page-object/javascript/jquery.rb +14 -0
- data/lib/page-object/javascript/prototype.rb +14 -0
- data/lib/page-object/javascript/yui.rb +19 -0
- data/lib/page-object/javascript_framework_facade.rb +80 -0
- data/lib/page-object/loads_platform.rb +45 -0
- data/lib/page-object/locator_generator.rb +131 -0
- data/lib/page-object/nested_elements.rb +17 -0
- data/lib/page-object/page_factory.rb +108 -0
- data/lib/page-object/page_populator.rb +83 -0
- data/lib/page-object/platforms.rb +18 -0
- data/lib/page-object/platforms/selenium_webdriver.rb +30 -0
- data/lib/page-object/platforms/selenium_webdriver/button.rb +15 -0
- data/lib/page-object/platforms/selenium_webdriver/check_box.rb +29 -0
- data/lib/page-object/platforms/selenium_webdriver/element.rb +291 -0
- data/lib/page-object/platforms/selenium_webdriver/file_field.rb +16 -0
- data/lib/page-object/platforms/selenium_webdriver/form.rb +16 -0
- data/lib/page-object/platforms/selenium_webdriver/image.rb +28 -0
- data/lib/page-object/platforms/selenium_webdriver/link.rb +23 -0
- data/lib/page-object/platforms/selenium_webdriver/ordered_list.rb +39 -0
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1237 -0
- data/lib/page-object/platforms/selenium_webdriver/radio_button.rb +22 -0
- data/lib/page-object/platforms/selenium_webdriver/select_list.rb +93 -0
- data/lib/page-object/platforms/selenium_webdriver/surrogate_selenium_element.rb +42 -0
- data/lib/page-object/platforms/selenium_webdriver/table.rb +42 -0
- data/lib/page-object/platforms/selenium_webdriver/table_row.rb +43 -0
- data/lib/page-object/platforms/selenium_webdriver/text_area.rb +17 -0
- data/lib/page-object/platforms/selenium_webdriver/text_field.rb +17 -0
- data/lib/page-object/platforms/selenium_webdriver/unordered_list.rb +39 -0
- data/lib/page-object/platforms/watir_webdriver.rb +30 -0
- data/lib/page-object/platforms/watir_webdriver/check_box.rb +29 -0
- data/lib/page-object/platforms/watir_webdriver/element.rb +249 -0
- data/lib/page-object/platforms/watir_webdriver/file_field.rb +16 -0
- data/lib/page-object/platforms/watir_webdriver/form.rb +16 -0
- data/lib/page-object/platforms/watir_webdriver/image.rb +22 -0
- data/lib/page-object/platforms/watir_webdriver/link.rb +15 -0
- data/lib/page-object/platforms/watir_webdriver/ordered_list.rb +35 -0
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +1082 -0
- data/lib/page-object/platforms/watir_webdriver/radio_button.rb +22 -0
- data/lib/page-object/platforms/watir_webdriver/select_list.rb +74 -0
- data/lib/page-object/platforms/watir_webdriver/table.rb +38 -0
- data/lib/page-object/platforms/watir_webdriver/table_row.rb +37 -0
- data/lib/page-object/platforms/watir_webdriver/text_area.rb +23 -0
- data/lib/page-object/platforms/watir_webdriver/text_field.rb +16 -0
- data/lib/page-object/platforms/watir_webdriver/unordered_list.rb +36 -0
- data/lib/page-object/sections.rb +29 -0
- data/lib/page-object/version.rb +4 -0
- data/lib/page-object/widgets.rb +133 -0
- data/page_object.gemspec +31 -0
- data/pageobject.gems +1 -0
- data/spec/page-object/accessors_spec.rb +40 -0
- data/spec/page-object/element_locators_spec.rb +1122 -0
- data/spec/page-object/elements/area_spec.rb +45 -0
- data/spec/page-object/elements/bold_spec.rb +29 -0
- data/spec/page-object/elements/button_spec.rb +64 -0
- data/spec/page-object/elements/canvas_spec.rb +40 -0
- data/spec/page-object/elements/check_box_spec.rb +49 -0
- data/spec/page-object/elements/div_spec.rb +28 -0
- data/spec/page-object/elements/element_spec.rb +114 -0
- data/spec/page-object/elements/file_field_spec.rb +39 -0
- data/spec/page-object/elements/form_spec.rb +28 -0
- data/spec/page-object/elements/heading_spec.rb +48 -0
- data/spec/page-object/elements/hidden_field_spec.rb +28 -0
- data/spec/page-object/elements/image_spec.rb +66 -0
- data/spec/page-object/elements/label_spec.rb +29 -0
- data/spec/page-object/elements/link_spec.rb +49 -0
- data/spec/page-object/elements/list_item_spec.rb +29 -0
- data/spec/page-object/elements/nested_element_spec.rb +254 -0
- data/spec/page-object/elements/option_spec.rb +11 -0
- data/spec/page-object/elements/ordered_list_spec.rb +94 -0
- data/spec/page-object/elements/paragraph_spec.rb +27 -0
- data/spec/page-object/elements/select_list_spec.rb +142 -0
- data/spec/page-object/elements/selenium/radio_button_spec.rb +44 -0
- data/spec/page-object/elements/selenium/text_field_spec.rb +49 -0
- data/spec/page-object/elements/selenium_element_spec.rb +177 -0
- data/spec/page-object/elements/span_spec.rb +26 -0
- data/spec/page-object/elements/table_cell_spec.rb +21 -0
- data/spec/page-object/elements/table_row_spec.rb +70 -0
- data/spec/page-object/elements/table_spec.rb +98 -0
- data/spec/page-object/elements/text_area_spec.rb +39 -0
- data/spec/page-object/elements/unordered_list_spec.rb +94 -0
- data/spec/page-object/elements/watir_element_spec.rb +145 -0
- data/spec/page-object/javascript_framework_facade_spec.rb +61 -0
- data/spec/page-object/loads_platform_spec.rb +53 -0
- data/spec/page-object/page-object_spec.rb +407 -0
- data/spec/page-object/page_factory_spec.rb +238 -0
- data/spec/page-object/page_populator_spec.rb +122 -0
- data/spec/page-object/page_section_spec.rb +73 -0
- data/spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb +68 -0
- data/spec/page-object/platforms/selenium_webdriver_spec.rb +29 -0
- data/spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb +29 -0
- data/spec/page-object/platforms/watir_webdriver_spec.rb +9 -0
- data/spec/page-object/selenium_accessors_spec.rb +609 -0
- data/spec/page-object/watir_accessors_spec.rb +1134 -0
- data/spec/page-object/widget_spec.rb +226 -0
- data/spec/spec_helper.rb +47 -0
- metadata +601 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
When /^I search for the audio element by "([^\"]*)"$/ do |how|
|
|
2
|
+
@element = @page.send "audio_#{how}_element"
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
When /^I search for the audio element by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
|
6
|
+
@element = @page.send "audio_#{param1}_#{param2}_element"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
Then /^I should know the audio is not autoplay$/ do
|
|
10
|
+
@element.should_not be_autoplay
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
Then /^I should know that the controls are displayed$/ do
|
|
14
|
+
@element.should have_controls
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Then /^I should know that the audio is paused$/ do
|
|
18
|
+
@element.should be_paused
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
Then /^I should know that the duration is greater than (\d+) seconds$/ do |duration|
|
|
22
|
+
@element.duration.should > duration.to_f
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Then /^I should know that its volume is (\d+)$/ do |volume|
|
|
26
|
+
@element.volume.should == volume.to_i
|
|
27
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
When /^I get the bold text for the "([^\"]*)" element$/ do |el|
|
|
2
|
+
@b = @page.send "#{el}_id"
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
Then /^I should see "([^\"]*)" in bold$/ do |text|
|
|
6
|
+
@b.should == text
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
When /^I search bold text for the (\w+) by "([^"]*)"$/ do |text_decorator, type|
|
|
10
|
+
@b = @page.send "#{text_decorator}_#{type}"
|
|
11
|
+
end
|
|
12
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
When /^I click the button$/ do
|
|
2
|
+
@page.button_id
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
When /^I click the button with type image$/ do
|
|
6
|
+
@page.button_image_id
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
When /^I click the image button using src$/ do
|
|
10
|
+
@page.button_image_src
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
When /^I click the image button using alt$/ do
|
|
14
|
+
@page.button_image_alt
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
When /^I search for the button by "([^\"]*)"$/ do |how|
|
|
18
|
+
@how = how
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
When /^I search for the button by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
|
22
|
+
@how = "#{param1}_#{param2}"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Then /^I should be able to click the button$/ do
|
|
26
|
+
@page.send "button_#{@how}"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
Then /^I should be able to click the real button$/ do
|
|
30
|
+
@page.send "btn_#{@how}"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
When /^I find a button while the script is executing$/ do
|
|
34
|
+
@button = @page.button_element(:id => 'button_id')
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
Then /^I should be able to click the button element$/ do
|
|
38
|
+
@button.click
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
Then /^I should see that the button exists$/ do
|
|
42
|
+
@page.button_id?.should == true
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
When(/^I get the text for a button that is a "([^"]*)"$/) do |tagname|
|
|
47
|
+
@text = @page.button_element(:id => "#{tagname}_button").text
|
|
48
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
When /^I search for the canvas by "([^\"]*)"$/ do |how|
|
|
2
|
+
@element = @page.send "canvas_#{how}_element"
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
Then /^I should see that the canvas width is "([^\"]*)"$/ do |width|
|
|
6
|
+
@element.width.should == width.to_i
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
Then /^I should see that the canvas height is "([^\"]*)"$/ do |height|
|
|
10
|
+
@element.height.should == height.to_i
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
When /^I search for the canvas element by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
|
14
|
+
@element = @page.send "canvas_#{param1}_#{param2}_element"
|
|
15
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
When /^I select the First check box$/ do
|
|
2
|
+
@page.check_cb_id
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
Then /^the First check box should be selected$/ do
|
|
6
|
+
@page.cb_id_checked?.should be true
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
When /^I unselect the First check box$/ do
|
|
10
|
+
@page.uncheck_cb_id
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
Then /^the First check box should not be selected$/ do
|
|
14
|
+
@page.cb_id_checked?.should be false
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
When /^I search for the check box by "([^\"]*)"$/ do |how|
|
|
18
|
+
@how = how
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
When /^I search for the check box by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
|
22
|
+
@how = "#{param1}_#{param2}"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Then /^I should be able to check the check box$/ do
|
|
26
|
+
@page.send "check_cb_#{@how}".to_sym
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
When /^I select the first check box while the script is executing$/ do
|
|
30
|
+
@page.checkbox_element(:id => 'cb_id').check
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Then /^I should see that the checkbox exists$/ do
|
|
34
|
+
@page.button_id?.should == true
|
|
35
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
When /^I get the text from the div$/ do
|
|
2
|
+
@text = @page.div_id
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
When /^I search for the div by "([^\"]*)"$/ do |how|
|
|
6
|
+
@text = @page.send "div_#{how}".to_sym
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
When /^I search for the div by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
|
10
|
+
@text = @page.send "div_#{param1}_#{param2}".to_sym
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
When /^I get the text from a div while the script is executing$/ do
|
|
14
|
+
@text = @page.div_element(:id => 'div_id').text
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Then /^I should see that the div exists$/ do
|
|
18
|
+
@page.div_id?.should == true
|
|
19
|
+
end
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
When /^I retrieve a check box element$/ do
|
|
2
|
+
@element = @page.cb_id_element
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
When /^I retrieve a link element$/ do
|
|
6
|
+
@element = @page.google_search_id_element
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
When /^I retrieve a radio button$/ do
|
|
10
|
+
@element = @page.milk_id_element
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
When /^I retrieve a select list$/ do
|
|
14
|
+
@element = @page.sel_list_id_element
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
When /^I retrieve a text field$/ do
|
|
18
|
+
@element = @page.text_field_id_element
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
When /^I retrieve the text area$/ do
|
|
22
|
+
@element = @page.text_area_id_element
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
When /^I retrieve the div element$/ do
|
|
26
|
+
@element = @page.div_id_element
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
When /^I retrieve a table element$/ do
|
|
30
|
+
@element = @page.table_id_element
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
When /^I retrieve a table with thead element$/ do
|
|
34
|
+
@element = @page.table_with_thead_id_element
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
When /^I retrieve a button element$/ do
|
|
38
|
+
@element = @page.button_id_element
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
When /^I retrieve table cell$/ do
|
|
42
|
+
@element = @page.cell_id_element
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
When /^I retrieve a heading element$/ do
|
|
46
|
+
@element = @page.h1_id_element
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
When /^I retrieve the area element$/ do
|
|
50
|
+
@element = @page.area_id_element
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
When /^I retrieve the canvas element$/ do
|
|
54
|
+
@element = @page.canvas_id_element
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
When /^I retrieve the audio element$/ do
|
|
58
|
+
@element = @page.audio_id_element
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
When /^I locate the form$/ do
|
|
62
|
+
@element = @page.form_id_element
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
Then /^I should know it exists$/ do
|
|
66
|
+
@element.should exist
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
Then /^I should know it is visible$/ do
|
|
70
|
+
@element.should be_visible
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
Then /^I should know it is not visible$/ do
|
|
74
|
+
@element.should_not be_visible
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
Then /^I should know the text is "(.*)"$/ do |text|
|
|
78
|
+
@element.text.should == text
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
Then /^I should know the html is "(.*)"$/ do |html|
|
|
82
|
+
@element.html.should == html
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
Then /^I should know the text includes "(.*)"$/ do |text|
|
|
86
|
+
@element.text.should include text
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
Then /^I should know the value is "(.*)"$/ do |value|
|
|
90
|
+
@element.value.should == value
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
Then /^I should know the value is nil$/ do
|
|
94
|
+
@element.value.should be_nil
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
Then /^I should know it is equal to itself$/ do
|
|
98
|
+
@element.should == @element
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
Then /^I should know the tag name is "(.+)"$/ do |tagname|
|
|
102
|
+
@element.tag_name.should == tagname
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
Then /^I should know the attribute "(.+)" is false$/ do |attr_name|
|
|
106
|
+
@attr = @element.attribute(attr_name)
|
|
107
|
+
@attr.should be_false if @attr.is_a? FalseClass
|
|
108
|
+
@attr.should == "false" if @attr.is_a? String
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
Then /^I should be able to click it$/ do
|
|
112
|
+
@element.click
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
When /^I retrieve a list item element$/ do
|
|
116
|
+
@element = @page.li_id_element
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
When /^I retrieve an unordered list element$/ do
|
|
120
|
+
@element = @page.ul_id_element
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
When /^I retrieve an ordered list element$/ do
|
|
124
|
+
@element = @page.ol_id_element
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
When /^I clear the text field$/ do
|
|
128
|
+
@page.text_field_id_element.clear
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
When /^I check an enabled button$/ do
|
|
132
|
+
@element = @page.button_id_element
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
Then /^it should know it is enabled$/ do
|
|
136
|
+
@element.should be_enabled
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
When /^I check a disabled button$/ do
|
|
140
|
+
@element = @page.disabled_button_element
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
Then /^it should know it is not enabled$/ do
|
|
144
|
+
@element.should_not be_enabled
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
Then /^it should know that is it not disabled$/ do
|
|
148
|
+
@element.should_not be_disabled
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
Then /^it should know that it is disabled$/ do
|
|
152
|
+
@element.should be_disabled
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
When /^I set the focus to the test text_field using the onfocus event$/ do
|
|
156
|
+
@page.text_field_element(:id => 'onfocus_text_field').fire_event('onfocus')
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
Then /^I should see the onfocus text "([^\"]*)"$/ do |text|
|
|
160
|
+
@page.div_element(:id => 'onfocus_test').text.should == text
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
When /^I set the focus on the test text_field$/ do
|
|
164
|
+
@page.text_field_element(:id => 'onfocus_text_field').focus
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
When /^I find the child link element$/ do
|
|
168
|
+
@element = @page.child_element
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
When /^ask for the parent element$/ do
|
|
172
|
+
@parent = @element.parent
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
Then /^I should have a div parent$/ do
|
|
176
|
+
@parent.should be_instance_of ::PageObject::Elements::Div
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
Then /^I should know that the text_field has the focus$/ do
|
|
180
|
+
element = @page.element_with_focus
|
|
181
|
+
element.should_not be_nil
|
|
182
|
+
element.class.should == PageObject::Elements::TextField
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
When /^I set the focus to the test text_field$/ do
|
|
186
|
+
@page.text_field_element(:id => 'onfocus_text_field').focus
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
When /^I retrieve the label element$/ do
|
|
190
|
+
@element = @page.label_id_element
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
Then /^I should be able to flash it$/ do
|
|
194
|
+
@element.flash
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
class HoverPage
|
|
198
|
+
include PageObject
|
|
199
|
+
|
|
200
|
+
link(:hello)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
Given /^I am on the hover page$/ do
|
|
204
|
+
@page = HoverPage.new(@browser)
|
|
205
|
+
@page.navigate_to UrlHelper.hover
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
When /^I hover over the hello link$/ do
|
|
209
|
+
@page.hello_element.hover
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
Then /^the font size should be "([^\"]*)"$/ do |font_size|
|
|
213
|
+
@page.hello_element.style('font-size').should == font_size if ENV['BROWSER'] == 'chrome'
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
Then /^I should know its id is "([^\"]*)"$/ do |id|
|
|
217
|
+
@element.id.should == id
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
class DoubleClickPage
|
|
221
|
+
include PageObject
|
|
222
|
+
button(:click)
|
|
223
|
+
paragraph(:p_text)
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
Given /^I am on the Double Click page$/ do
|
|
227
|
+
@page = DoubleClickPage.new(@browser)
|
|
228
|
+
@page.navigate_to UrlHelper.double_click
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
When /^I double click the button$/ do
|
|
232
|
+
@page.click_element.double_click
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
Then /^the paragraph should read "([^\"]*)"$/ do |expected_text|
|
|
236
|
+
@page.p_text.should == expected_text
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
When /^I scroll the heading element into view$/ do
|
|
240
|
+
@element.scroll_into_view
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
Then /^the heading element should be visible$/ do
|
|
244
|
+
@element.should be_visible
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
When /^I retrieve a div using data\-entity$/ do
|
|
248
|
+
@element = @page.div_data_entity_element
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
When(/^I retrieve the figure using the declaration$/) do
|
|
252
|
+
@element = @page.figure_id_element
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
When(/^I retrieve the figure using the element$/) do
|
|
256
|
+
@element = @page.figure_element(:id => 'figure_id')
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
Then(/^I should see the figure contains an image$/) do
|
|
260
|
+
@element.image_element.should_not be_nil
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
Then(/^I should know the attribute "(.*?)" includes "(.+)"$/) do |attribute, included|
|
|
264
|
+
@attr = @element.attribute(attribute)
|
|
265
|
+
@attr.should include included
|
|
266
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
When /^I set the file field to the step definition file$/ do
|
|
2
|
+
@page.file_field_id = __FILE__
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
Then /^its\' value should equal that file$/ do
|
|
6
|
+
__FILE__.should include @page.file_field_id_element.value
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
When /^I search for the file field by "([^\"]*)"$/ do |how|
|
|
10
|
+
@how = how
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
When /^I search for the file field by "([^\"]*)" and "([^\"]*)"$/ do |param1, param2|
|
|
14
|
+
@how = "#{param1}_#{param2}"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Then /^I should be able to set the file field$/ do
|
|
18
|
+
@page.send "file_field_#{@how}=", __FILE__
|
|
19
|
+
end
|