page-object 0.7.5.1 → 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +8 -0
- data/features/area.feature +9 -0
- data/features/audio.feature +9 -0
- data/features/canvas.feature +9 -0
- data/features/check_box.feature +9 -0
- data/features/element.feature +5 -0
- data/features/file_field.feature +9 -0
- data/features/form.feature +9 -0
- data/features/headings.feature +55 -0
- data/features/hidden_field.feature +9 -0
- data/features/html/double_click.html +13 -0
- data/features/html/failure.html +8 -0
- data/features/html/static_elements.html +1 -0
- data/features/image.feature +10 -0
- data/features/label.feature +9 -0
- data/features/link.feature +9 -0
- data/features/list_item.feature +9 -0
- data/features/ordered_list.feature +12 -0
- data/features/page_level_actions.feature +10 -0
- data/features/paragraph.feature +9 -0
- data/features/radio_button.feature +10 -0
- data/features/span.feature +9 -0
- data/features/step_definitions/element_steps.rb +19 -0
- data/features/step_definitions/page_level_actions_steps.rb +6 -0
- data/features/step_definitions/span_steps.rb +1 -1
- data/features/support/page.rb +30 -0
- data/features/support/url_helper.rb +4 -1
- data/features/table.feature +9 -0
- data/features/table_cell.feature +9 -0
- data/features/text_area.feature +8 -0
- data/features/unordered_list.feature +12 -0
- data/features/video.feature +9 -0
- data/lib/page-object.rb +4 -2
- data/lib/page-object/accessors.rb +57 -0
- data/lib/page-object/elements/button.rb +1 -1
- data/lib/page-object/elements/div.rb +1 -1
- data/lib/page-object/elements/element.rb +2 -7
- data/lib/page-object/elements/link.rb +1 -1
- data/lib/page-object/elements/select_list.rb +0 -4
- data/lib/page-object/elements/span.rb +1 -1
- data/lib/page-object/elements/text_field.rb +1 -1
- data/lib/page-object/platforms/selenium_webdriver/element.rb +8 -0
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1 -1
- data/lib/page-object/platforms/watir_webdriver/element.rb +7 -0
- data/lib/page-object/version.rb +1 -1
- data/page-object.gemspec +1 -1
- data/spec/page-object/elements/selenium_element_spec.rb +1 -0
- data/spec/page-object/elements/watir_element_spec.rb +5 -0
- data/spec/page-object/page-object_spec.rb +35 -3
- metadata +10 -6
data/ChangeLog
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
=== Version 0.7.6 / 2012-11-28
|
2
|
+
* Fixes
|
3
|
+
* Fixed attach_to_window workes with partial url on Selenium (George Shakhnazaryan)
|
4
|
+
* Fixed double click works on Selenium (William Powell)
|
5
|
+
* Enhancements
|
6
|
+
* Added css selector support for all elements when using Selenium (Brendan Mulholland)
|
7
|
+
* Added callback to initialize_accessors method during initialization (Theodore Robert Campbell Jr)
|
8
|
+
|
1
9
|
=== Version 0.7.5.1 / 2012-10-16
|
2
10
|
* Fixes
|
3
11
|
* Fixed issue when passing symbol to page_url and calling multiple times
|
data/features/area.feature
CHANGED
@@ -20,6 +20,15 @@ Feature: Area
|
|
20
20
|
| xpath |
|
21
21
|
| index |
|
22
22
|
|
23
|
+
@selenium_only
|
24
|
+
Scenario Outline: Locating areas on the page
|
25
|
+
When I search for the area by "<search_by>"
|
26
|
+
Then I should be able to click the area
|
27
|
+
|
28
|
+
Scenarios:
|
29
|
+
| search_by |
|
30
|
+
| css |
|
31
|
+
|
23
32
|
Scenario: Getting the coordinates for the area
|
24
33
|
When I retrieve the area element
|
25
34
|
Then I should see the coordinates are "0,0,82,126"
|
data/features/audio.feature
CHANGED
@@ -20,6 +20,15 @@ Feature: Support for the audio element
|
|
20
20
|
| xpath |
|
21
21
|
| index |
|
22
22
|
|
23
|
+
@selenium_only
|
24
|
+
Scenario Outline: Locating an audio element on the page
|
25
|
+
When I search for the audio element by "<search_by>"
|
26
|
+
Then I should know it is visible
|
27
|
+
|
28
|
+
Scenarios:
|
29
|
+
| search_by |
|
30
|
+
| css |
|
31
|
+
|
23
32
|
Scenario Outline: Locating audios using multiple parameters
|
24
33
|
When I search for the audio element by "<param1>" and "<param2>"
|
25
34
|
Then I should know it is visible
|
data/features/canvas.feature
CHANGED
@@ -20,6 +20,15 @@ Feature: Support for the canvas element
|
|
20
20
|
| xpath |
|
21
21
|
| index |
|
22
22
|
|
23
|
+
@selenium_only
|
24
|
+
Scenario Outline: Locating a canvas on the page
|
25
|
+
When I search for the canvas by "<search_by>"
|
26
|
+
Then I should know it is visible
|
27
|
+
|
28
|
+
Examples:
|
29
|
+
| search_by |
|
30
|
+
| css |
|
31
|
+
|
23
32
|
Scenario: Determining the width and height of the canvas
|
24
33
|
When I retrieve the canvas element
|
25
34
|
Then I should see that the canvas width is "200"
|
data/features/check_box.feature
CHANGED
@@ -25,6 +25,15 @@ Feature: Check Box
|
|
25
25
|
| index |
|
26
26
|
| value |
|
27
27
|
|
28
|
+
@selenium_only
|
29
|
+
Scenario Outline: Locating check boxes on the page
|
30
|
+
When I search for the check box by "<search_by>"
|
31
|
+
Then I should be able to check the check box
|
32
|
+
|
33
|
+
Scenarios:
|
34
|
+
| search_by |
|
35
|
+
| css |
|
36
|
+
|
28
37
|
Scenario Outline: Locating check boxes using multiple parameters
|
29
38
|
When I search for the check box by "<param1>" and "<param2>"
|
30
39
|
Then I should be able to check the check box
|
data/features/element.feature
CHANGED
@@ -285,3 +285,8 @@ Feature: Elements
|
|
285
285
|
Scenario: Getting an element's id
|
286
286
|
When I retrieve a button element
|
287
287
|
Then I should know its id is "button_id"
|
288
|
+
|
289
|
+
Scenario: Double Clicking
|
290
|
+
Given I am on the Double Click page
|
291
|
+
When I double click the button
|
292
|
+
Then the paragraph should read "Double Click Received"
|
data/features/file_field.feature
CHANGED
@@ -20,6 +20,15 @@ Feature: File Field
|
|
20
20
|
| title |
|
21
21
|
| index |
|
22
22
|
|
23
|
+
@selenium_only
|
24
|
+
Scenario Outline: Locating file fields on the Page
|
25
|
+
When I search for the file field by "<search_by>"
|
26
|
+
Then I should be able to set the file field
|
27
|
+
|
28
|
+
Scenarios:
|
29
|
+
| search_by |
|
30
|
+
| css |
|
31
|
+
|
23
32
|
Scenario Outline: Locating file fields using multiple parameters
|
24
33
|
When I search for the file field by "<param1>" and "<param2>"
|
25
34
|
Then I should be able to set the file field
|
data/features/form.feature
CHANGED
@@ -19,6 +19,15 @@ Feature: Form
|
|
19
19
|
| index |
|
20
20
|
| action |
|
21
21
|
|
22
|
+
@selenium_only
|
23
|
+
Scenario Outline: Locating a form on the page
|
24
|
+
When I locate the form by "<search_by>"
|
25
|
+
Then I should be able to submit the form
|
26
|
+
|
27
|
+
Scenarios:
|
28
|
+
| search_by |
|
29
|
+
| css |
|
30
|
+
|
22
31
|
Scenario Outline: Locating table using multiple parameters
|
23
32
|
When I locate the form using "<param1>" and "<param2>"
|
24
33
|
Then I should be able to submit the form
|
data/features/headings.feature
CHANGED
@@ -29,6 +29,15 @@ Feature: Headings
|
|
29
29
|
| xpath |
|
30
30
|
| index |
|
31
31
|
|
32
|
+
@selenium_only
|
33
|
+
Scenario Outline: Locating h1s on the Page
|
34
|
+
When I search for the heading1 by "<search_by>"
|
35
|
+
Then I should see "h1's are cool"
|
36
|
+
|
37
|
+
Scenarios:
|
38
|
+
| search_by |
|
39
|
+
| css |
|
40
|
+
|
32
41
|
Scenario Outline: Locating h2s on the Page
|
33
42
|
When I search for the heading2 by "<search_by>"
|
34
43
|
Then I should see "h2's are cool"
|
@@ -41,6 +50,15 @@ Feature: Headings
|
|
41
50
|
| xpath |
|
42
51
|
| index |
|
43
52
|
|
53
|
+
@selenium_only
|
54
|
+
Scenario Outline: Locating h2s on the Page
|
55
|
+
When I search for the heading2 by "<search_by>"
|
56
|
+
Then I should see "h2's are cool"
|
57
|
+
|
58
|
+
Scenarios:
|
59
|
+
| search_by |
|
60
|
+
| css |
|
61
|
+
|
44
62
|
Scenario Outline: Locating h3s on the Page
|
45
63
|
When I search for the heading3 by "<search_by>"
|
46
64
|
Then I should see "h3's are cool"
|
@@ -53,6 +71,15 @@ Feature: Headings
|
|
53
71
|
| xpath |
|
54
72
|
| index |
|
55
73
|
|
74
|
+
@selenium_only
|
75
|
+
Scenario Outline: Locating h3s on the Page
|
76
|
+
When I search for the heading3 by "<search_by>"
|
77
|
+
Then I should see "h3's are cool"
|
78
|
+
|
79
|
+
Scenarios:
|
80
|
+
| search_by |
|
81
|
+
| css |
|
82
|
+
|
56
83
|
Scenario Outline: Locating h4s on the Page
|
57
84
|
When I search for the heading4 by "<search_by>"
|
58
85
|
Then I should see "h4's are cool"
|
@@ -65,6 +92,15 @@ Feature: Headings
|
|
65
92
|
| xpath |
|
66
93
|
| index |
|
67
94
|
|
95
|
+
@selenium_only
|
96
|
+
Scenario Outline: Locating h4s on the Page
|
97
|
+
When I search for the heading4 by "<search_by>"
|
98
|
+
Then I should see "h4's are cool"
|
99
|
+
|
100
|
+
Scenarios:
|
101
|
+
| search_by |
|
102
|
+
| css |
|
103
|
+
|
68
104
|
Scenario Outline: Locating h5s on the Page
|
69
105
|
When I search for the heading5 by "<search_by>"
|
70
106
|
Then I should see "h5's are cool"
|
@@ -77,6 +113,15 @@ Feature: Headings
|
|
77
113
|
| xpath |
|
78
114
|
| index |
|
79
115
|
|
116
|
+
@selenium_only
|
117
|
+
Scenario Outline: Locating h5s on the Page
|
118
|
+
When I search for the heading5 by "<search_by>"
|
119
|
+
Then I should see "h5's are cool"
|
120
|
+
|
121
|
+
Scenarios:
|
122
|
+
| search_by |
|
123
|
+
| css |
|
124
|
+
|
80
125
|
Scenario Outline: Locating h6s on the Page
|
81
126
|
When I search for the heading6 by "<search_by>"
|
82
127
|
Then I should see "h6's are cool"
|
@@ -88,3 +133,13 @@ Feature: Headings
|
|
88
133
|
| name |
|
89
134
|
| xpath |
|
90
135
|
| index |
|
136
|
+
|
137
|
+
@selenium_only
|
138
|
+
Scenario Outline: Locating h6s on the Page
|
139
|
+
When I search for the heading6 by "<search_by>"
|
140
|
+
Then I should see "h6's are cool"
|
141
|
+
|
142
|
+
Scenarios:
|
143
|
+
| search_by |
|
144
|
+
| css |
|
145
|
+
|
@@ -21,6 +21,15 @@ Feature: Hidden Fields
|
|
21
21
|
| text |
|
22
22
|
| value |
|
23
23
|
|
24
|
+
@selenium_only
|
25
|
+
Scenario Outline: Locating hidden fields on the Page
|
26
|
+
When I search for the hidden field by "<search_by>"
|
27
|
+
Then the hidden field element should contain "12345"
|
28
|
+
|
29
|
+
Scenarios:
|
30
|
+
| search_by |
|
31
|
+
| css |
|
32
|
+
|
24
33
|
Scenario Outline: Locating a hidden field using multiple parameters
|
25
34
|
When I search for the hidden field by "<param1>" and "<param2>"
|
26
35
|
Then the hidden field element should contain "12345"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<html>
|
2
|
+
<body>
|
3
|
+
<button ondblclick="change_text()">Double Click</button>
|
4
|
+
<p id="change_on_double_click">The double click has not occurred.</p>
|
5
|
+
</body>
|
6
|
+
|
7
|
+
<script>
|
8
|
+
function change_text()
|
9
|
+
{
|
10
|
+
document.getElementById("change_on_double_click").innerHTML="Double Click Received"
|
11
|
+
}
|
12
|
+
</script>
|
13
|
+
</html>
|
@@ -150,6 +150,7 @@
|
|
150
150
|
<h6 id="h6_id" class="h6_class" name="h6_name">h6's are cool</h6>
|
151
151
|
|
152
152
|
<a href="success.html" target="_blank">New Window</a>
|
153
|
+
<a href="failure.html" target="_blank">Another New Window</a>
|
153
154
|
|
154
155
|
<input type="text" id="onfocus_text_field" onfocus="document.getElementById('onfocus_test').innerHTML = 'changed by onfocus event'"/>
|
155
156
|
<div id="onfocus_test"></div>
|
data/features/image.feature
CHANGED
@@ -23,6 +23,16 @@ Feature: Image
|
|
23
23
|
| alt |
|
24
24
|
| src |
|
25
25
|
|
26
|
+
@selenium_only
|
27
|
+
Scenario Outline: Locating an image on the page
|
28
|
+
When I get the image element by "<search_by>"
|
29
|
+
Then the image should be "106" pixels wide
|
30
|
+
And the image should be "106" pixels tall
|
31
|
+
|
32
|
+
Scenarios:
|
33
|
+
| search_by |
|
34
|
+
| css |
|
35
|
+
|
26
36
|
Scenario Outline: Locating an image using multiple parameters
|
27
37
|
When I get the image element by "<param1>" and "<param2>"
|
28
38
|
Then the image should be "106" pixels wide
|
data/features/label.feature
CHANGED
@@ -29,6 +29,15 @@ Feature: Handling labels with page object
|
|
29
29
|
| name |
|
30
30
|
| text |
|
31
31
|
|
32
|
+
@selenium_only
|
33
|
+
Scenario Outline: Locating labels on the page
|
34
|
+
When I search for the label by "<search_by>"
|
35
|
+
Then the text should be "page-object is the best!"
|
36
|
+
|
37
|
+
Scenarios:
|
38
|
+
| search_by |
|
39
|
+
| css |
|
40
|
+
|
32
41
|
Scenario Outline: Locating labels using multiple parameters
|
33
42
|
When I search for the label by "<param1>" and "<param2>"
|
34
43
|
Then the text should be "page-object is the best!"
|
data/features/link.feature
CHANGED
@@ -27,6 +27,15 @@ Feature: Links
|
|
27
27
|
| css |
|
28
28
|
| title |
|
29
29
|
|
30
|
+
@selenium_only
|
31
|
+
Scenario Outline: Locating links on the Page
|
32
|
+
When I search for the link by "<search_by>"
|
33
|
+
Then I should be able to select the link
|
34
|
+
|
35
|
+
Scenarios:
|
36
|
+
| search_by |
|
37
|
+
| css |
|
38
|
+
|
30
39
|
Scenario: Support for multiple parameters
|
31
40
|
When I select a link labeled "Hello" and index "0"
|
32
41
|
Then the page should contain the text "Success"
|
data/features/list_item.feature
CHANGED
@@ -20,6 +20,15 @@ Feature: List item
|
|
20
20
|
| name |
|
21
21
|
| text |
|
22
22
|
|
23
|
+
@selenium_only
|
24
|
+
Scenario Outline: Locating list items on the page
|
25
|
+
When I search for the list item by "<search_by>"
|
26
|
+
Then the text should be "Item One"
|
27
|
+
|
28
|
+
Scenarios:
|
29
|
+
| search_by |
|
30
|
+
| css |
|
31
|
+
|
23
32
|
Scenario Outline: Locating list items using multiple parameters
|
24
33
|
When I search for the list item by "<param1>" and "<param2>"
|
25
34
|
Then the text should be "Item One"
|
@@ -22,6 +22,18 @@ Feature: Ordered list
|
|
22
22
|
| index |
|
23
23
|
| name |
|
24
24
|
|
25
|
+
@selenium_only
|
26
|
+
Scenario Outline: Locating ordered lists on the page
|
27
|
+
When I search for the ordered list by "<search_by>"
|
28
|
+
And I get the first item from the list
|
29
|
+
Then the list items text should be "Number One"
|
30
|
+
And the list should contain 3 items
|
31
|
+
And each item should contain "Number"
|
32
|
+
|
33
|
+
Scenarios:
|
34
|
+
| search_by |
|
35
|
+
| css |
|
36
|
+
|
25
37
|
Scenario Outline: Locating ordered lists using multiple parameters
|
26
38
|
When I search for the ordered list by "<param1>" and "<param2>"
|
27
39
|
And I get the first item from the list
|
@@ -62,10 +62,20 @@ Feature: Page level actions
|
|
62
62
|
Scenario: Attach to window using title
|
63
63
|
When I open a second window
|
64
64
|
Then I should be able to attach to a page object using title
|
65
|
+
|
66
|
+
Scenario: Attach to window using title with multiple windows
|
67
|
+
When I open a second window
|
68
|
+
When I open a third window
|
69
|
+
Then I should be able to attach to a page object using title
|
65
70
|
|
66
71
|
Scenario: Attach to window using url
|
67
72
|
When I open a second window
|
68
73
|
Then I should be able to attach to a page object using url
|
74
|
+
|
75
|
+
Scenario: Attach to window using url with multiple windows
|
76
|
+
When I open a second window
|
77
|
+
When I open a third window
|
78
|
+
Then I should be able to attach to a page object using url
|
69
79
|
|
70
80
|
Scenario: Refreshing the page
|
71
81
|
Then I should be able to refresh the page
|
data/features/paragraph.feature
CHANGED
@@ -19,6 +19,15 @@ Feature: Paragraph
|
|
19
19
|
| index |
|
20
20
|
| name |
|
21
21
|
|
22
|
+
@selenium_only
|
23
|
+
Scenario Outline: Locating paragraphs on the page
|
24
|
+
When I search for the paragraph by "<search_by>"
|
25
|
+
Then the text should be "Static Elements Page"
|
26
|
+
|
27
|
+
Scenarios:
|
28
|
+
| search_by |
|
29
|
+
| css |
|
30
|
+
|
22
31
|
Scenario Outline: Locating paragraphs using multiple parameters
|
23
32
|
When I search for the paragraph by "<param1>" and "<param2>"
|
24
33
|
Then the text should be "Static Elements Page"
|
@@ -26,6 +26,16 @@ Feature: Radio Buttons
|
|
26
26
|
| value |
|
27
27
|
| index |
|
28
28
|
|
29
|
+
@selenium_only
|
30
|
+
Scenario Outline: Locating radio buttons on the Page
|
31
|
+
When I search for the radio button by "<search_by>"
|
32
|
+
And I select the radio button
|
33
|
+
Then the "Milk" radio button should be selected
|
34
|
+
|
35
|
+
Scenarios:
|
36
|
+
| search_by |
|
37
|
+
| css |
|
38
|
+
|
29
39
|
Scenario Outline: Locating radio buttons using multiple parameters
|
30
40
|
When I search for the radio button by "<param1>" and "<param2>"
|
31
41
|
And I select the radio button
|
data/features/span.feature
CHANGED
@@ -21,6 +21,15 @@ Feature: Span
|
|
21
21
|
| text |
|
22
22
|
| title |
|
23
23
|
|
24
|
+
@selenium_only
|
25
|
+
Scenario Outline: Locating spans on the page
|
26
|
+
When I search for the span by "<search_by>"
|
27
|
+
Then the text should be "My alert"
|
28
|
+
|
29
|
+
Scenarios:
|
30
|
+
| search_by |
|
31
|
+
| css |
|
32
|
+
|
24
33
|
Scenario Outline: Locating span using multiple parameters
|
25
34
|
When I search for the span by "<param1>" and "<param2>"
|
26
35
|
Then the text should be "My alert"
|
@@ -212,3 +212,22 @@ end
|
|
212
212
|
Then /^I should know its id is "([^\"]*)"$/ do |id|
|
213
213
|
@element.id.should == id
|
214
214
|
end
|
215
|
+
|
216
|
+
class DoubleClickPage
|
217
|
+
include PageObject
|
218
|
+
button(:click)
|
219
|
+
paragraph(:text)
|
220
|
+
end
|
221
|
+
|
222
|
+
Given /^I am on the Double Click page$/ do
|
223
|
+
@page = DoubleClickPage.new(@browser)
|
224
|
+
@page.navigate_to UrlHelper.double_click
|
225
|
+
end
|
226
|
+
|
227
|
+
When /^I double click the button$/ do
|
228
|
+
@page.click_element.double_click
|
229
|
+
end
|
230
|
+
|
231
|
+
Then /^the paragraph should read "([^"]*)"$/ do |expected_text|
|
232
|
+
@page.text.should == expected_text
|
233
|
+
end
|