page-object 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +22 -12
- data/ChangeLog +10 -0
- data/Gemfile +4 -2
- data/Guardfile +1 -1
- data/README.md +2 -2
- data/lib/page-object/accessors.rb +57 -35
- data/lib/page-object/elements/element.rb +26 -0
- data/lib/page-object/locator_generator.rb +46 -0
- data/lib/page-object/platforms/selenium_webdriver/element.rb +6 -6
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +14 -0
- data/lib/page-object/platforms/watir_webdriver/element.rb +0 -7
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +16 -3
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +7 -10
- metadata +34 -375
- data/features/area.feature +0 -35
- data/features/async.feature +0 -21
- data/features/audio.feature +0 -64
- data/features/bold.feature +0 -21
- data/features/button.feature +0 -98
- data/features/canvas.feature +0 -37
- data/features/check_box.feature +0 -55
- data/features/div.feature +0 -45
- data/features/element.feature +0 -343
- data/features/file_field.feature +0 -40
- data/features/form.feature +0 -43
- data/features/frames.feature +0 -75
- data/features/generic_elements.feature +0 -29
- data/features/gxt_table_extension.feature +0 -23
- data/features/headings.feature +0 -97
- data/features/hidden_field.feature +0 -45
- 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 +0 -36
- data/features/html/double_click.html +0 -13
- data/features/html/failure.html +0 -8
- data/features/html/frame_1.html +0 -18
- data/features/html/frame_2.html +0 -16
- data/features/html/frame_3.html +0 -14
- data/features/html/frames.html +0 -12
- data/features/html/hover.html +0 -12
- data/features/html/iframes.html +0 -12
- 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 +0 -55
- data/features/html/modal.html +0 -17
- data/features/html/modal_1.html +0 -38
- data/features/html/modal_2.html +0 -27
- data/features/html/movie.mp4 +0 -0
- data/features/html/movie.ogg +0 -0
- data/features/html/multi_elements.html +0 -145
- data/features/html/nested_elements.html +0 -77
- data/features/html/nested_frame_1.html +0 -1
- data/features/html/nested_frame_2.html +0 -11
- data/features/html/nested_frame_3.html +0 -14
- data/features/html/nested_frames.html +0 -10
- data/features/html/planets.gif +0 -0
- data/features/html/static_elements.html +0 -194
- data/features/html/success.html +0 -8
- data/features/html/sun.gif +0 -0
- data/features/html/sun.html +0 -7
- data/features/html/widgets.html +0 -20
- data/features/image.feature +0 -50
- data/features/indexed_property.feature +0 -117
- data/features/italic.feature +0 -21
- data/features/javascript.feature +0 -28
- data/features/label.feature +0 -46
- data/features/link.feature +0 -52
- data/features/list_item.feature +0 -36
- data/features/modal_dialog.feature +0 -15
- data/features/multi_elements.feature +0 -498
- data/features/nested_elements.feature +0 -117
- data/features/ordered_list.feature +0 -56
- data/features/page_level_actions.feature +0 -90
- data/features/paragraph.feature +0 -35
- data/features/radio_button.feature +0 -58
- data/features/radio_button_group.feature +0 -29
- data/features/sample-app/public/audio_video.html +0 -23
- data/features/sample-app/public/jquery-1.3.2.js +0 -4376
- data/features/sample-app/public/jquery.html +0 -30
- data/features/sample-app/public/prototype-1.6.0.3.js +0 -4320
- data/features/sample-app/public/prototype.html +0 -35
- data/features/sample-app/sample_app.rb +0 -35
- data/features/section.feature +0 -136
- data/features/select_list.feature +0 -86
- data/features/span.feature +0 -37
- data/features/step_definitions/accessor_steps.rb +0 -64
- data/features/step_definitions/area_steps.rb +0 -19
- data/features/step_definitions/async_steps.rb +0 -83
- data/features/step_definitions/audio_steps.rb +0 -27
- data/features/step_definitions/bold_steps.rb +0 -12
- data/features/step_definitions/button_steps.rb +0 -48
- data/features/step_definitions/canvas_steps.rb +0 -15
- data/features/step_definitions/check_box_steps.rb +0 -35
- data/features/step_definitions/div_steps.rb +0 -19
- data/features/step_definitions/element_steps.rb +0 -294
- data/features/step_definitions/file_field_steps.rb +0 -19
- data/features/step_definitions/form_steps.rb +0 -19
- data/features/step_definitions/frames_steps.rb +0 -159
- data/features/step_definitions/generic_element_steps.rb +0 -31
- data/features/step_definitions/gxt_table_steps.rb +0 -53
- data/features/step_definitions/headings_steps.rb +0 -12
- data/features/step_definitions/hidden_field_steps.rb +0 -27
- data/features/step_definitions/image_steps.rb +0 -27
- data/features/step_definitions/indexed_property_steps.rb +0 -163
- data/features/step_definitions/italic_steps.rb +0 -12
- data/features/step_definitions/javascript_steps.rb +0 -53
- data/features/step_definitions/label_steps.rb +0 -19
- data/features/step_definitions/link_steps.rb +0 -40
- data/features/step_definitions/list_item_steps.rb +0 -19
- data/features/step_definitions/modal_dialog_steps.rb +0 -62
- data/features/step_definitions/multi_elements_steps.rb +0 -554
- data/features/step_definitions/nested_elements_steps.rb +0 -212
- data/features/step_definitions/ordered_list_steps.rb +0 -23
- data/features/step_definitions/page_level_actions_steps.rb +0 -135
- data/features/step_definitions/page_traversal_steps.rb +0 -8
- data/features/step_definitions/paragraph_steps.rb +0 -28
- data/features/step_definitions/radio_button_group_steps.rb +0 -36
- data/features/step_definitions/radio_button_steps.rb +0 -27
- data/features/step_definitions/section_steps.rb +0 -277
- data/features/step_definitions/select_list_steps.rb +0 -65
- data/features/step_definitions/span_steps.rb +0 -19
- data/features/step_definitions/table_cell_steps.rb +0 -15
- data/features/step_definitions/table_row_steps.rb +0 -23
- data/features/step_definitions/table_steps.rb +0 -70
- data/features/step_definitions/text_area_steps.rb +0 -35
- data/features/step_definitions/text_field_steps.rb +0 -35
- data/features/step_definitions/unordered_list_steps.rb +0 -23
- data/features/step_definitions/video_steps.rb +0 -45
- data/features/support/ajax_text_environment.rb +0 -26
- data/features/support/audio_video_page.rb +0 -24
- data/features/support/env.rb +0 -8
- data/features/support/hooks.rb +0 -8
- data/features/support/page.rb +0 -373
- data/features/support/persistent_browser.rb +0 -70
- data/features/support/targets/firefox14_osx.rb +0 -6
- data/features/support/targets/firefox14_windows7.rb +0 -6
- data/features/support/url_helper.rb +0 -61
- data/features/table.feature +0 -122
- data/features/table_cell.feature +0 -45
- data/features/table_row.feature +0 -43
- data/features/text_area.feature +0 -51
- data/features/text_field.feature +0 -70
- data/features/unordered_list.feature +0 -56
- data/features/video.feature +0 -69
- data/spec/page-object/accessors_spec.rb +0 -40
- data/spec/page-object/element_locators_spec.rb +0 -1144
- data/spec/page-object/elements/area_spec.rb +0 -45
- data/spec/page-object/elements/bold_spec.rb +0 -29
- data/spec/page-object/elements/button_spec.rb +0 -64
- data/spec/page-object/elements/canvas_spec.rb +0 -41
- data/spec/page-object/elements/check_box_spec.rb +0 -49
- data/spec/page-object/elements/div_spec.rb +0 -28
- data/spec/page-object/elements/element_spec.rb +0 -196
- data/spec/page-object/elements/file_field_spec.rb +0 -39
- data/spec/page-object/elements/form_spec.rb +0 -28
- data/spec/page-object/elements/heading_spec.rb +0 -48
- data/spec/page-object/elements/hidden_field_spec.rb +0 -28
- data/spec/page-object/elements/image_spec.rb +0 -66
- data/spec/page-object/elements/italic_spec.rb +0 -29
- data/spec/page-object/elements/label_spec.rb +0 -29
- data/spec/page-object/elements/link_spec.rb +0 -49
- data/spec/page-object/elements/list_item_spec.rb +0 -29
- data/spec/page-object/elements/media_spec.rb +0 -63
- data/spec/page-object/elements/nested_element_spec.rb +0 -254
- data/spec/page-object/elements/option_spec.rb +0 -11
- data/spec/page-object/elements/ordered_list_spec.rb +0 -78
- data/spec/page-object/elements/paragraph_spec.rb +0 -27
- data/spec/page-object/elements/select_list_spec.rb +0 -142
- data/spec/page-object/elements/selenium/radio_button_spec.rb +0 -44
- data/spec/page-object/elements/selenium/text_field_spec.rb +0 -49
- data/spec/page-object/elements/selenium_element_spec.rb +0 -218
- data/spec/page-object/elements/span_spec.rb +0 -26
- data/spec/page-object/elements/table_cell_spec.rb +0 -21
- data/spec/page-object/elements/table_row_spec.rb +0 -70
- data/spec/page-object/elements/table_spec.rb +0 -98
- data/spec/page-object/elements/text_area_spec.rb +0 -39
- data/spec/page-object/elements/unordered_list_spec.rb +0 -77
- data/spec/page-object/elements/video_spec.rb +0 -33
- data/spec/page-object/elements/watir_element_spec.rb +0 -193
- data/spec/page-object/javascript_framework_facade_spec.rb +0 -61
- data/spec/page-object/loads_platform_spec.rb +0 -53
- data/spec/page-object/page-object_spec.rb +0 -435
- data/spec/page-object/page_factory_spec.rb +0 -238
- data/spec/page-object/page_populator_spec.rb +0 -122
- data/spec/page-object/page_section_spec.rb +0 -80
- data/spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb +0 -68
- data/spec/page-object/platforms/selenium_webdriver_spec.rb +0 -29
- data/spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb +0 -29
- data/spec/page-object/platforms/watir_webdriver_spec.rb +0 -9
- data/spec/page-object/selenium_accessors_spec.rb +0 -628
- data/spec/page-object/watir_accessors_spec.rb +0 -1191
- data/spec/page-object/widget_spec.rb +0 -226
- data/spec/spec_helper.rb +0 -43
data/features/area.feature
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
Feature: Area
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given I am on the static elements page
|
|
5
|
-
|
|
6
|
-
Scenario: Retrieve an area element
|
|
7
|
-
When I retrieve the area element
|
|
8
|
-
Then I should know it exists
|
|
9
|
-
And I should know it is visible
|
|
10
|
-
|
|
11
|
-
Scenario Outline: Locating areas on the page
|
|
12
|
-
When I search for the area by "<search_by>"
|
|
13
|
-
Then I should be able to click the area
|
|
14
|
-
|
|
15
|
-
Examples:
|
|
16
|
-
| search_by |
|
|
17
|
-
| id |
|
|
18
|
-
| class |
|
|
19
|
-
| name |
|
|
20
|
-
| xpath |
|
|
21
|
-
| index |
|
|
22
|
-
| css |
|
|
23
|
-
|
|
24
|
-
Scenario: Getting the coordinates for the area
|
|
25
|
-
When I retrieve the area element
|
|
26
|
-
Then I should see the coordinates are "0,0,82,126"
|
|
27
|
-
|
|
28
|
-
Scenario: Getting the shape for the area
|
|
29
|
-
When I retrieve the area element
|
|
30
|
-
Then I should see the shape is "rect"
|
|
31
|
-
|
|
32
|
-
Scenario: Getting the href from the area
|
|
33
|
-
When I retrieve the area element
|
|
34
|
-
Then I should see the href is "sun.html"
|
|
35
|
-
|
data/features/async.feature
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
Feature: Handling Asynch calls
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given I am on the async elements page
|
|
5
|
-
|
|
6
|
-
Scenario: Click a button when it is visible
|
|
7
|
-
When I make the button invisible
|
|
8
|
-
Then I should be able to click it when it becomses visible
|
|
9
|
-
|
|
10
|
-
Scenario: Wait until something is not visible
|
|
11
|
-
Then I should be able to wait until the button becomes invisible
|
|
12
|
-
|
|
13
|
-
Scenario: Wait for an element to appear on the page
|
|
14
|
-
When I add a button a few seconds from now
|
|
15
|
-
Then I should be able to click it when it gets added
|
|
16
|
-
|
|
17
|
-
Scenario: Wait for an element to disappear from the page
|
|
18
|
-
When I add a button a few seconds from now
|
|
19
|
-
And I remove a button a few seconds from now
|
|
20
|
-
Then I should not be able to find the button
|
|
21
|
-
|
data/features/audio.feature
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
Feature: Support for the audio element
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given I am on the audio video page
|
|
5
|
-
|
|
6
|
-
Scenario: finding an audio element
|
|
7
|
-
When I retrieve the audio element from the page
|
|
8
|
-
Then I should know it exists
|
|
9
|
-
And I should know it is visible
|
|
10
|
-
|
|
11
|
-
Scenario Outline: Locating an audio element on the page
|
|
12
|
-
When I search for the audio element by "<search_by>"
|
|
13
|
-
Then I should know it is visible
|
|
14
|
-
|
|
15
|
-
Examples:
|
|
16
|
-
| search_by |
|
|
17
|
-
| id |
|
|
18
|
-
| class |
|
|
19
|
-
| name |
|
|
20
|
-
| xpath |
|
|
21
|
-
| index |
|
|
22
|
-
| css |
|
|
23
|
-
|
|
24
|
-
Scenario Outline: Locating audios using multiple parameters
|
|
25
|
-
When I search for the audio element by "<param1>" and "<param2>"
|
|
26
|
-
Then I should know it is visible
|
|
27
|
-
|
|
28
|
-
Examples:
|
|
29
|
-
| param1 | param2 |
|
|
30
|
-
| class | index |
|
|
31
|
-
| name | index |
|
|
32
|
-
|
|
33
|
-
Scenario: Should know if it is autoplay
|
|
34
|
-
When I retrieve the audio element from the page
|
|
35
|
-
Then I should know the audio is not autoplay
|
|
36
|
-
|
|
37
|
-
Scenario: Should know if the controls are displayed
|
|
38
|
-
When I retrieve the audio element from the page
|
|
39
|
-
Then I should know that the controls are displayed
|
|
40
|
-
|
|
41
|
-
Scenario: Should know if it is paused
|
|
42
|
-
When I retrieve the audio element from the page
|
|
43
|
-
Then I should know that the audio is paused
|
|
44
|
-
|
|
45
|
-
Scenario: Should know its volume
|
|
46
|
-
When I retrieve the audio element from the page
|
|
47
|
-
Then I should know that its volume is 1
|
|
48
|
-
|
|
49
|
-
Scenario: Should know if it has ended
|
|
50
|
-
When I retrieve the audio element from the page
|
|
51
|
-
Then I should know that it has not ended
|
|
52
|
-
|
|
53
|
-
Scenario: Should know if it is seeking
|
|
54
|
-
When I retrieve the audio element from the page
|
|
55
|
-
Then I should know that it is not seeking
|
|
56
|
-
|
|
57
|
-
Scenario: Should know if it is in a loop
|
|
58
|
-
When I retrieve the audio element from the page
|
|
59
|
-
Then I should know that it is not in a loop
|
|
60
|
-
|
|
61
|
-
Scenario: Should know if it is muted
|
|
62
|
-
When I retrieve the audio element from the page
|
|
63
|
-
Then I should know that it is muted
|
|
64
|
-
|
data/features/bold.feature
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
Feature: Bold
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given I am on the static elements page
|
|
5
|
-
|
|
6
|
-
Scenario: Getting the text of headings
|
|
7
|
-
When I get the bold text for the "b" element
|
|
8
|
-
Then I should see "some text in bold" in bold
|
|
9
|
-
|
|
10
|
-
Scenario Outline: Locating b on the Page
|
|
11
|
-
When I search bold text for the b by "<search_by>"
|
|
12
|
-
Then I should see "some text in bold" in bold
|
|
13
|
-
|
|
14
|
-
Scenarios:
|
|
15
|
-
| search_by |
|
|
16
|
-
| id |
|
|
17
|
-
| class |
|
|
18
|
-
| name |
|
|
19
|
-
| xpath |
|
|
20
|
-
| index |
|
|
21
|
-
| css |
|
data/features/button.feature
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
Feature: Button
|
|
2
|
-
In order to interact with buttons
|
|
3
|
-
Testers will need access and interrogation ability
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given I am on the static elements page
|
|
8
|
-
|
|
9
|
-
Scenario: Clicking a button (type=submit)
|
|
10
|
-
When I click the button
|
|
11
|
-
Then I should be on the success page
|
|
12
|
-
|
|
13
|
-
Scenario: Clicking a button (type=image)
|
|
14
|
-
When I click the button with type image
|
|
15
|
-
Then I should be on the success page
|
|
16
|
-
|
|
17
|
-
Scenario: Clicking an image button by src
|
|
18
|
-
When I click the image button using src
|
|
19
|
-
Then I should be on the success page
|
|
20
|
-
|
|
21
|
-
Scenario: Clicking an image button by alt
|
|
22
|
-
When I click the image button using alt
|
|
23
|
-
Then I should be on the success page
|
|
24
|
-
|
|
25
|
-
Scenario: Retrieve a button element
|
|
26
|
-
When I retrieve a button element
|
|
27
|
-
Then I should know it exists
|
|
28
|
-
And I should know it is visible
|
|
29
|
-
|
|
30
|
-
Scenario Outline: Locating buttons on the page
|
|
31
|
-
When I search for the button by "<search_by>"
|
|
32
|
-
Then I should be able to click the button
|
|
33
|
-
|
|
34
|
-
Scenarios:
|
|
35
|
-
| search_by |
|
|
36
|
-
| id |
|
|
37
|
-
| class |
|
|
38
|
-
| name |
|
|
39
|
-
| xpath |
|
|
40
|
-
| index |
|
|
41
|
-
| value |
|
|
42
|
-
| css |
|
|
43
|
-
|
|
44
|
-
Scenario Outline: Locating real buttons on the page
|
|
45
|
-
When I search for the button by "<search_by>"
|
|
46
|
-
Then I should be able to click the real button
|
|
47
|
-
|
|
48
|
-
Scenarios:
|
|
49
|
-
| search_by |
|
|
50
|
-
| id |
|
|
51
|
-
| class |
|
|
52
|
-
| name |
|
|
53
|
-
| index |
|
|
54
|
-
| value |
|
|
55
|
-
|
|
56
|
-
@watir_only
|
|
57
|
-
Scenario Outline: Locating buttons on Watir only
|
|
58
|
-
When I search for the button by "<search_by>"
|
|
59
|
-
Then I should be able to click the button
|
|
60
|
-
|
|
61
|
-
Scenarios:
|
|
62
|
-
| search_by |
|
|
63
|
-
| text |
|
|
64
|
-
|
|
65
|
-
@dane
|
|
66
|
-
Scenario Outline: Getting the text from a button
|
|
67
|
-
When I get the text for a button that is a "<tag>"
|
|
68
|
-
Then the text should be "This button is a <tag>"
|
|
69
|
-
|
|
70
|
-
Scenarios:
|
|
71
|
-
| tag |
|
|
72
|
-
| button |
|
|
73
|
-
| input |
|
|
74
|
-
|
|
75
|
-
Scenario Outline: Locating button using multiple parameters
|
|
76
|
-
When I search for the button by "<param1>" and "<param2>"
|
|
77
|
-
Then I should be able to click the button
|
|
78
|
-
|
|
79
|
-
Scenarios:
|
|
80
|
-
| param1 | param2 |
|
|
81
|
-
| class | index |
|
|
82
|
-
| name | index |
|
|
83
|
-
|
|
84
|
-
Scenario Outline: Locating real button using multiple parameters
|
|
85
|
-
When I search for the button by "<param1>" and "<param2>"
|
|
86
|
-
Then I should be able to click the real button
|
|
87
|
-
|
|
88
|
-
Scenarios:
|
|
89
|
-
| param1 | param2 |
|
|
90
|
-
| class | index |
|
|
91
|
-
| name | index |
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
Scenario: Finding a button dynamically
|
|
95
|
-
When I find a button while the script is executing
|
|
96
|
-
Then I should see that the button exists
|
|
97
|
-
And I should be able to click the button element
|
|
98
|
-
|
data/features/canvas.feature
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
Feature: Support for the canvas element
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given I am on the static elements page
|
|
5
|
-
|
|
6
|
-
Scenario: Retrieve a canvas element
|
|
7
|
-
When I retrieve the canvas element
|
|
8
|
-
Then I should know it exists
|
|
9
|
-
And I should know it is visible
|
|
10
|
-
|
|
11
|
-
Scenario Outline: Locating a canvas on the page
|
|
12
|
-
When I search for the canvas by "<search_by>"
|
|
13
|
-
Then I should know it is visible
|
|
14
|
-
|
|
15
|
-
Examples:
|
|
16
|
-
| search_by |
|
|
17
|
-
| id |
|
|
18
|
-
| class |
|
|
19
|
-
| name |
|
|
20
|
-
| xpath |
|
|
21
|
-
| index |
|
|
22
|
-
| css |
|
|
23
|
-
|
|
24
|
-
Scenario: Determining the width and height of the canvas
|
|
25
|
-
When I retrieve the canvas element
|
|
26
|
-
Then I should see that the canvas width is "200"
|
|
27
|
-
And I should see that the canvas height is "100"
|
|
28
|
-
|
|
29
|
-
Scenario Outline: Locating canvases using multiple parameters
|
|
30
|
-
When I search for the canvas element by "<param1>" and "<param2>"
|
|
31
|
-
Then I should know it is visible
|
|
32
|
-
|
|
33
|
-
Scenarios:
|
|
34
|
-
| param1 | param2 |
|
|
35
|
-
| class | index |
|
|
36
|
-
| name | index |
|
|
37
|
-
|
data/features/check_box.feature
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
Feature: Check Box
|
|
2
|
-
In order to interact with check boxes
|
|
3
|
-
Testers will need access and interrogation ability
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given I am on the static elements page
|
|
8
|
-
|
|
9
|
-
Scenario: Selecting a check box
|
|
10
|
-
When I select the First check box
|
|
11
|
-
Then the First check box should be selected
|
|
12
|
-
When I unselect the First check box
|
|
13
|
-
Then the First check box should not be selected
|
|
14
|
-
|
|
15
|
-
Scenario Outline: Locating check boxes on the page
|
|
16
|
-
When I search for the check box by "<search_by>"
|
|
17
|
-
Then I should be able to check the check box
|
|
18
|
-
|
|
19
|
-
Scenarios:
|
|
20
|
-
| search_by |
|
|
21
|
-
| id |
|
|
22
|
-
| class |
|
|
23
|
-
| name |
|
|
24
|
-
| xpath |
|
|
25
|
-
| index |
|
|
26
|
-
| value |
|
|
27
|
-
| label |
|
|
28
|
-
|
|
29
|
-
@selenium_only
|
|
30
|
-
Scenario Outline: Locating check boxes on the page
|
|
31
|
-
When I search for the check box by "<search_by>"
|
|
32
|
-
Then I should be able to check the check box
|
|
33
|
-
|
|
34
|
-
Scenarios:
|
|
35
|
-
| search_by |
|
|
36
|
-
| css |
|
|
37
|
-
|
|
38
|
-
Scenario Outline: Locating check boxes using multiple parameters
|
|
39
|
-
When I search for the check box by "<param1>" and "<param2>"
|
|
40
|
-
Then I should be able to check the check box
|
|
41
|
-
|
|
42
|
-
Scenarios:
|
|
43
|
-
| param1 | param2 |
|
|
44
|
-
| class | index |
|
|
45
|
-
| name | index |
|
|
46
|
-
|
|
47
|
-
Scenario: Retrieve a CheckBox
|
|
48
|
-
When I retrieve a check box element
|
|
49
|
-
Then I should know it exists
|
|
50
|
-
And I should know it is visible
|
|
51
|
-
|
|
52
|
-
Scenario: Finding a check box dynamically
|
|
53
|
-
When I select the first check box while the script is executing
|
|
54
|
-
Then I should see that the checkbox exists
|
|
55
|
-
And the First check box should be selected
|
data/features/div.feature
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
Feature: Div
|
|
2
|
-
In order to interact with divs
|
|
3
|
-
Testers will need access and interrogation ability
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given I am on the static elements page
|
|
8
|
-
|
|
9
|
-
Scenario: Getting the text from a div
|
|
10
|
-
When I get the text from the div
|
|
11
|
-
Then the text should be "page-object rocks!"
|
|
12
|
-
|
|
13
|
-
Scenario: Getting the div element
|
|
14
|
-
When I retrieve the div element
|
|
15
|
-
Then I should know it exists
|
|
16
|
-
And I should know it is visible
|
|
17
|
-
|
|
18
|
-
Scenario Outline: Locating divs on the page
|
|
19
|
-
When I search for the div by "<search_by>"
|
|
20
|
-
Then the text should be "page-object rocks!"
|
|
21
|
-
|
|
22
|
-
Scenarios:
|
|
23
|
-
| search_by |
|
|
24
|
-
| id |
|
|
25
|
-
| class |
|
|
26
|
-
| xpath |
|
|
27
|
-
| index |
|
|
28
|
-
| name |
|
|
29
|
-
| text |
|
|
30
|
-
| title |
|
|
31
|
-
| css |
|
|
32
|
-
|
|
33
|
-
Scenario Outline: Locating divs using multiple parameters
|
|
34
|
-
When I search for the div by "<param1>" and "<param2>"
|
|
35
|
-
Then the text should be "page-object rocks!"
|
|
36
|
-
|
|
37
|
-
Scenarios:
|
|
38
|
-
| param1 | param2 |
|
|
39
|
-
| class | index |
|
|
40
|
-
| name | index |
|
|
41
|
-
|
|
42
|
-
Scenario: Finding a div dynamically
|
|
43
|
-
When I get the text from a div while the script is executing
|
|
44
|
-
Then I should see that the div exists
|
|
45
|
-
And the text should be "page-object rocks!"
|
data/features/element.feature
DELETED
|
@@ -1,343 +0,0 @@
|
|
|
1
|
-
Feature: Elements
|
|
2
|
-
|
|
3
|
-
Background:
|
|
4
|
-
Given I am on the static elements page
|
|
5
|
-
|
|
6
|
-
Scenario: Clear an element
|
|
7
|
-
When I type "abcDEF" into the text field
|
|
8
|
-
Then the text field should contain "abcDEF"
|
|
9
|
-
When I clear the text field
|
|
10
|
-
Then the text field should contain ""
|
|
11
|
-
|
|
12
|
-
Scenario: Elements enabled?
|
|
13
|
-
When I check an enabled button
|
|
14
|
-
Then it should know it is enabled
|
|
15
|
-
And it should know that is it not disabled
|
|
16
|
-
When I check a disabled button
|
|
17
|
-
Then it should know it is not enabled
|
|
18
|
-
And it should know that it is disabled
|
|
19
|
-
|
|
20
|
-
Scenario: Setting focus and finding the element with focus
|
|
21
|
-
When I set the focus to the test text_field
|
|
22
|
-
Then I should know that the text_field has the focus
|
|
23
|
-
|
|
24
|
-
Scenario: Link element methods
|
|
25
|
-
When I retrieve a link element
|
|
26
|
-
Then I should know it exists
|
|
27
|
-
And I should know it is visible
|
|
28
|
-
And I should know the text is "Google Search"
|
|
29
|
-
And I should know the html is "<a href="success.html" id="link_id" name="link_name" class="link_class" title="link_title">Google Search</a>"
|
|
30
|
-
And I should know it is equal to itself
|
|
31
|
-
And I should know the tag name is "a"
|
|
32
|
-
And I should know the attribute "readonly" is false
|
|
33
|
-
And I should know the attribute "href" includes "success.html"
|
|
34
|
-
And I should be able to click it
|
|
35
|
-
|
|
36
|
-
@watir_only
|
|
37
|
-
Scenario: Link element methods for watir
|
|
38
|
-
When I retrieve a link element
|
|
39
|
-
Then I should know the value is ""
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
Scenario: Button element methods
|
|
43
|
-
When I retrieve a button element
|
|
44
|
-
Then I should know it exists
|
|
45
|
-
And I should know it is visible
|
|
46
|
-
And I should know the value is "Click Me"
|
|
47
|
-
And I should know it is equal to itself
|
|
48
|
-
And I should know the tag name is "input"
|
|
49
|
-
And I should know the attribute "readonly" is false
|
|
50
|
-
And I should be able to click it
|
|
51
|
-
|
|
52
|
-
@watir_only
|
|
53
|
-
Scenario: Button element methods for watir
|
|
54
|
-
When I retrieve a button element
|
|
55
|
-
Then I should know the text is "Click Me"
|
|
56
|
-
|
|
57
|
-
Scenario: Check Box element methods
|
|
58
|
-
When I retrieve a check box element
|
|
59
|
-
Then I should know it exists
|
|
60
|
-
And I should know it is visible
|
|
61
|
-
And I should know the text is ""
|
|
62
|
-
And I should know the value is "1"
|
|
63
|
-
And I should know it is equal to itself
|
|
64
|
-
And I should know the tag name is "input"
|
|
65
|
-
And I should know the attribute "readonly" is false
|
|
66
|
-
And I should be able to click it
|
|
67
|
-
|
|
68
|
-
Scenario: Div element methods
|
|
69
|
-
When I retrieve the div element
|
|
70
|
-
Then I should know it exists
|
|
71
|
-
And I should know it is visible
|
|
72
|
-
And I should know the text is "page-object rocks!"
|
|
73
|
-
And I should know it is equal to itself
|
|
74
|
-
And I should know the tag name is "div"
|
|
75
|
-
And I should know the attribute "readonly" is false
|
|
76
|
-
And I should be able to click it
|
|
77
|
-
|
|
78
|
-
@watir_only
|
|
79
|
-
Scenario: Div element methods for watir
|
|
80
|
-
When I retrieve the div element
|
|
81
|
-
Then I should know the value is ""
|
|
82
|
-
|
|
83
|
-
@selenium_only
|
|
84
|
-
Scenario: Div element methods for selenium
|
|
85
|
-
When I retrieve the div element
|
|
86
|
-
Then I should know the value is nil
|
|
87
|
-
|
|
88
|
-
Scenario: Radio Button element methods
|
|
89
|
-
When I retrieve a radio button
|
|
90
|
-
Then I should know it exists
|
|
91
|
-
And I should know it is visible
|
|
92
|
-
And I should know the text is ""
|
|
93
|
-
And I should know the value is "Milk"
|
|
94
|
-
And I should know it is equal to itself
|
|
95
|
-
And I should know the tag name is "input"
|
|
96
|
-
And I should know the attribute "readonly" is false
|
|
97
|
-
And I should be able to click it
|
|
98
|
-
|
|
99
|
-
Scenario: Select List element methods
|
|
100
|
-
When I retrieve a select list
|
|
101
|
-
Then I should know it exists
|
|
102
|
-
And I should know it is visible
|
|
103
|
-
And I should know the text includes "Test 1"
|
|
104
|
-
And I should know the value is "option1"
|
|
105
|
-
And I should know it is equal to itself
|
|
106
|
-
And I should know the tag name is "select"
|
|
107
|
-
And I should know the attribute "readonly" is false
|
|
108
|
-
And I should be able to click it
|
|
109
|
-
|
|
110
|
-
Scenario: Table element methods
|
|
111
|
-
When I retrieve a table element
|
|
112
|
-
Then I should know it is visible
|
|
113
|
-
And I should know the text includes "Data1"
|
|
114
|
-
And I should know it is equal to itself
|
|
115
|
-
And I should know the tag name is "table"
|
|
116
|
-
And I should know the attribute "readonly" is false
|
|
117
|
-
And I should be able to click it
|
|
118
|
-
|
|
119
|
-
@watir_only
|
|
120
|
-
Scenario: Table element methods in watir
|
|
121
|
-
When I retrieve a table element
|
|
122
|
-
Then I should know it exists
|
|
123
|
-
And I should know the value is ""
|
|
124
|
-
|
|
125
|
-
@selenium_only
|
|
126
|
-
Scenario: Table element methods in selenium
|
|
127
|
-
When I retrieve a table element
|
|
128
|
-
Then I should know the value is nil
|
|
129
|
-
|
|
130
|
-
Scenario: Table Cell element methods
|
|
131
|
-
When I retrieve table cell
|
|
132
|
-
Then I should know it exists
|
|
133
|
-
And I should know it is visible
|
|
134
|
-
And I should know the text includes "Data4"
|
|
135
|
-
And I should know it is equal to itself
|
|
136
|
-
And I should know the tag name is "td"
|
|
137
|
-
And I should know the attribute "readonly" is false
|
|
138
|
-
And I should be able to click it
|
|
139
|
-
|
|
140
|
-
@watir_only
|
|
141
|
-
Scenario: Table Cell element methods in watir
|
|
142
|
-
When I retrieve table cell
|
|
143
|
-
Then I should know the value is ""
|
|
144
|
-
|
|
145
|
-
@selenium_only
|
|
146
|
-
Scenario: Table Cell element methods in selenium
|
|
147
|
-
When I retrieve table cell
|
|
148
|
-
Then I should know the value is nil
|
|
149
|
-
|
|
150
|
-
Scenario: Text Field element methods
|
|
151
|
-
When I retrieve a text field
|
|
152
|
-
Then I should know it exists
|
|
153
|
-
And I should know it is visible
|
|
154
|
-
And I should know the text includes ""
|
|
155
|
-
And I should know the value is ""
|
|
156
|
-
And I should know it is equal to itself
|
|
157
|
-
And I should know the tag name is "input"
|
|
158
|
-
And I should know the attribute "readonly" is false
|
|
159
|
-
And I should be able to click it
|
|
160
|
-
|
|
161
|
-
Scenario: Text Area element methods
|
|
162
|
-
When I retrieve the text area
|
|
163
|
-
Then I should know it exists
|
|
164
|
-
And I should know it is visible
|
|
165
|
-
And I should know the text includes ""
|
|
166
|
-
And I should know the value is ""
|
|
167
|
-
And I should know it is equal to itself
|
|
168
|
-
And I should know the tag name is "textarea"
|
|
169
|
-
And I should know the attribute "readonly" is false
|
|
170
|
-
And I should be able to click it
|
|
171
|
-
|
|
172
|
-
Scenario: Image element methods
|
|
173
|
-
When I get the image element
|
|
174
|
-
Then I should know it exists
|
|
175
|
-
And I should know it is visible
|
|
176
|
-
And I should know the text includes ""
|
|
177
|
-
And I should know it is equal to itself
|
|
178
|
-
And I should know the tag name is "img"
|
|
179
|
-
And I should know the attribute "readonly" is false
|
|
180
|
-
And I should be able to click it
|
|
181
|
-
|
|
182
|
-
@watir_only
|
|
183
|
-
Scenario: Image element methods in watir
|
|
184
|
-
When I get the image element
|
|
185
|
-
Then I should know the value is ""
|
|
186
|
-
|
|
187
|
-
@selenium_only
|
|
188
|
-
Scenario: Image element methods in selenium
|
|
189
|
-
When I get the image element
|
|
190
|
-
Then I should know the value is nil
|
|
191
|
-
|
|
192
|
-
Scenario: Hidden Field element methods
|
|
193
|
-
When I retrieve the hidden field element
|
|
194
|
-
Then I should know it exists
|
|
195
|
-
And I should know it is not visible
|
|
196
|
-
And I should know the text includes ""
|
|
197
|
-
And I should know the value is "12345"
|
|
198
|
-
And I should know it is equal to itself
|
|
199
|
-
And I should know the tag name is "input"
|
|
200
|
-
And I should know the attribute "readonly" is false
|
|
201
|
-
|
|
202
|
-
Scenario: Form element methods
|
|
203
|
-
When I locate the form
|
|
204
|
-
Then I should know it exists
|
|
205
|
-
And I should know it is visible
|
|
206
|
-
And I should know the text includes ""
|
|
207
|
-
And I should know it is equal to itself
|
|
208
|
-
And I should know the tag name is "form"
|
|
209
|
-
And I should know the attribute "readonly" is false
|
|
210
|
-
|
|
211
|
-
@watir_only
|
|
212
|
-
Scenario: Form element methods in watir
|
|
213
|
-
When I locate the form
|
|
214
|
-
Then I should know the value is ""
|
|
215
|
-
|
|
216
|
-
@selenium_only
|
|
217
|
-
Scenario: Form element methods in selenium
|
|
218
|
-
When I locate the form
|
|
219
|
-
Then I should know the value is nil
|
|
220
|
-
|
|
221
|
-
Scenario: List item element methods
|
|
222
|
-
When I retrieve a list item element
|
|
223
|
-
Then I should know it exists
|
|
224
|
-
And I should know it is visible
|
|
225
|
-
And I should know the text is "Item One"
|
|
226
|
-
And I should know it is equal to itself
|
|
227
|
-
And I should know the tag name is "li"
|
|
228
|
-
And I should know the attribute "readonly" is false
|
|
229
|
-
And I should be able to click it
|
|
230
|
-
|
|
231
|
-
Scenario: Unordered list element methods
|
|
232
|
-
When I retrieve an unordered list element
|
|
233
|
-
Then I should know it exists
|
|
234
|
-
And I should know it is visible
|
|
235
|
-
And I should know the text includes "Item One"
|
|
236
|
-
And I should know the text includes "Item Two"
|
|
237
|
-
And I should know the text includes "Item Three"
|
|
238
|
-
And I should know it is equal to itself
|
|
239
|
-
And I should know the tag name is "ul"
|
|
240
|
-
And I should know the attribute "readonly" is false
|
|
241
|
-
And I should be able to click it
|
|
242
|
-
|
|
243
|
-
Scenario: Ordered list element methods
|
|
244
|
-
When I retrieve an ordered list element
|
|
245
|
-
Then I should know it exists
|
|
246
|
-
And I should know it is visible
|
|
247
|
-
And I should know the text includes "Number One"
|
|
248
|
-
And I should know the text includes "Number Two"
|
|
249
|
-
And I should know the text includes "Number Three"
|
|
250
|
-
And I should know it is equal to itself
|
|
251
|
-
And I should know the tag name is "ol"
|
|
252
|
-
And I should know the attribute "readonly" is false
|
|
253
|
-
And I should be able to click it
|
|
254
|
-
|
|
255
|
-
Scenario: Heading element methods
|
|
256
|
-
When I retrieve a heading element
|
|
257
|
-
Then I should know it exists
|
|
258
|
-
And I should know it is visible
|
|
259
|
-
And I should know the text is "h1's are cool"
|
|
260
|
-
And I should know it is equal to itself
|
|
261
|
-
And I should know the tag name is "h1"
|
|
262
|
-
And I should know the attribute "readonly" is false
|
|
263
|
-
And I should be able to click it
|
|
264
|
-
|
|
265
|
-
Scenario: Firing an event
|
|
266
|
-
When I set the focus to the test text_field using the onfocus event
|
|
267
|
-
Then I should see the onfocus text "changed by onfocus event"
|
|
268
|
-
|
|
269
|
-
Scenario: Hovering over an element
|
|
270
|
-
Given I am on the hover page
|
|
271
|
-
When I hover over the hello link
|
|
272
|
-
Then the font size should be "20px"
|
|
273
|
-
|
|
274
|
-
Scenario: Setting focus on an element
|
|
275
|
-
When I set the focus on the test text_field
|
|
276
|
-
Then I should see the onfocus text "changed by onfocus event"
|
|
277
|
-
|
|
278
|
-
Scenario: Finding a parent element
|
|
279
|
-
When I find the child link element
|
|
280
|
-
And ask for the parent element
|
|
281
|
-
Then I should have a div parent
|
|
282
|
-
|
|
283
|
-
Scenario: Flashing an element
|
|
284
|
-
When I retrieve a button element
|
|
285
|
-
Then I should be able to flash it
|
|
286
|
-
|
|
287
|
-
Scenario: Getting an element's id
|
|
288
|
-
When I retrieve a button element
|
|
289
|
-
Then I should know its id is "button_id"
|
|
290
|
-
|
|
291
|
-
Scenario: Double Clicking
|
|
292
|
-
Given I am on the Double Click page
|
|
293
|
-
When I double click the button
|
|
294
|
-
Then the paragraph should read "Double Click Received"
|
|
295
|
-
|
|
296
|
-
Scenario: Scrolling so an element is visible
|
|
297
|
-
When I retrieve a heading element
|
|
298
|
-
And I scroll the heading element into view
|
|
299
|
-
Then the heading element should be visible
|
|
300
|
-
|
|
301
|
-
@watir_only
|
|
302
|
-
Scenario: Expanding how we find elements to include non-standard locators
|
|
303
|
-
When I retrieve a div using data-entity
|
|
304
|
-
Then I should know it exists
|
|
305
|
-
And I should know it is visible
|
|
306
|
-
And I should know the text is "found using data-entity"
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
Scenario: Accessing an HTML 5 element using the declaration
|
|
310
|
-
When I retrieve the figure using the declaration
|
|
311
|
-
Then I should see the figure contains an image
|
|
312
|
-
|
|
313
|
-
Scenario: Accessing an HTML 5 element using the element method
|
|
314
|
-
When I retrieve the figure using the element
|
|
315
|
-
Then I should see the figure contains an image
|
|
316
|
-
|
|
317
|
-
Scenario: Getting the class name for an element
|
|
318
|
-
When I search for the paragraph by "id"
|
|
319
|
-
Then I should know the paragraph class is "p_class"
|
|
320
|
-
|
|
321
|
-
Scenario: Selecting the text for an element
|
|
322
|
-
Then I should be able to select "Elements" from the paragraph
|
|
323
|
-
|
|
324
|
-
Scenario: Element location
|
|
325
|
-
When I retrieve a link element
|
|
326
|
-
Then I should be able to know its location
|
|
327
|
-
|
|
328
|
-
Scenario: Element size
|
|
329
|
-
When I retrieve a link element
|
|
330
|
-
Then I should be able to know its size
|
|
331
|
-
|
|
332
|
-
Scenario: Getting the height of an element
|
|
333
|
-
When I retrieve a link element
|
|
334
|
-
Then the element height is not 0
|
|
335
|
-
|
|
336
|
-
Scenario: Getting the width of an element
|
|
337
|
-
When I retrieve a link element
|
|
338
|
-
Then the element width is not 0
|
|
339
|
-
|
|
340
|
-
Scenario: Getting the centre of an element
|
|
341
|
-
When I retrieve a button element
|
|
342
|
-
Then the element centre should be greater than element y position
|
|
343
|
-
And the element centre should be greater than element x position
|