meeane-page-object 0.1.8 → 0.1.10
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +141 -141
- data/features/html/static_elements.html +20 -0
- data/features/radio_button_collinson.feature +58 -0
- data/features/step_definitions/radio_button_collinson_steps.rb +47 -0
- data/features/step_definitions/radio_button_steps.rb +20 -0
- data/lib/page-object/platforms/selenium_webdriver/label.rb +1 -0
- data/lib/page-object/platforms/watir_webdriver/label.rb +1 -0
- data/lib/page-object/version.rb +1 -1
- metadata +44 -27
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -1,141 +1,141 @@
|
|
1
|
-
# meeane-page-object
|
2
|
-
|
3
|
-
A simple fork of Jeff Morgan's page-object gem that assists in creating flexible page objects for testing Columbus Direct websites. The goal is to facilitate creating abstraction layers in your tests to decouple the tests from the items they are testing and to provide a simple interface to the elements on a page. It works with both watir-webdriver and selenium-webdriver.
|
4
|
-
|
5
|
-
The main additions over the original page-object gem are to extend the accessors to find and interact with the particular style of radio buttons used on the Columbus Direct websites. Also, I have extended the _populate_page_with_ method to work with these page element and wait for any AJAX requests these initiate. They work in the same way as the normal radio buttons but rather than using _select_ we use _choose_.
|
6
|
-
|
7
|
-
## Additional Methods Added
|
8
|
-
|
9
|
-
You can declare these
|
10
|
-
|
11
|
-
````ruby
|
12
|
-
label(:has_legal_expenses_cover_yes, :for => 'HasLegalExpensesCover_Yes')
|
13
|
-
````
|
14
|
-
|
15
|
-
This will add a _choose_ method in addition to the usual methods PageObjects creates for labels which allow you to select the element as you would a normal radio button. Call this using:
|
16
|
-
|
17
|
-
````ruby
|
18
|
-
choose_has_legal_expenses_cover_yes
|
19
|
-
````
|
20
|
-
|
21
|
-
The
|
22
|
-
|
23
|
-
````ruby
|
24
|
-
populate_page_with = data_for(:my_details, data)
|
25
|
-
````
|
26
|
-
|
27
|
-
#### Additional Setup
|
28
|
-
Many of the labels on the Columbus Direct websites (including Household & Travel) initiate an AJAX call using jQuery so the _choose_ methods generated call _wait_for_ajax_ to check the page has been updated before moving on. For this to work you need to declare the javascript library your website is using. Add the following to your env.rb file for the Columbus Direct websites:
|
29
|
-
|
30
|
-
````ruby
|
31
|
-
PageObject.javascript_framework = :jquery
|
32
|
-
````
|
33
|
-
|
34
|
-
## Improvements
|
35
|
-
|
36
|
-
Suggested improvements would be to add a facility to interact with the address widgets on the Columbus Direct pages. I'll look to add these at a later date but will use a different approach rather than forking the master as page-object gem already has an extension point that allows us to define our own Element types and register them with the gem. This would seem a better approach.
|
37
|
-
|
38
|
-
## Documentation
|
39
|
-
|
40
|
-
The project [wiki](https://github.com/cheezy/page-object/wiki/page-object) is the first place to go to learn about how to use page-object.
|
41
|
-
|
42
|
-
The rdocs for this project can be found at [rubydoc.info](http://rubydoc.info/gems/page-object/frames).
|
43
|
-
|
44
|
-
To see the changes from release to release please look at the [ChangeLog](https://raw.github.com/cheezy/page-object/master/ChangeLog)
|
45
|
-
|
46
|
-
To read about the motivation for this gem please read this [blog entry](http://www.cheezyworld.com/2010/11/19/ui-tests-introducing-a-simple-dsl/)
|
47
|
-
|
48
|
-
There is a book that describes in detail how to use this gem and others to create a complete view of testing web and other types of applications. The book is named [Cucumber & Cheese](http://leanpub.com/cucumber_and_cheese)
|
49
|
-
|
50
|
-
## Support
|
51
|
-
|
52
|
-
If you need help using the page-object gem please ask your questions on [Stack Overflow](http://stackoverflow.com). Please be sure to use the [page-object-gem](http://stackoverflow.com/questions/tagged/page-object-gem) tag. If you wish to report an issue or request a new feature use the [github issue tracking page](http://github.com/cheezy/page-object/issues).
|
53
|
-
|
54
|
-
## Basic Usage
|
55
|
-
|
56
|
-
### Defining your page object
|
57
|
-
|
58
|
-
You define a new page object by including the PageObject module:
|
59
|
-
|
60
|
-
````ruby
|
61
|
-
class LoginPage
|
62
|
-
include PageObject
|
63
|
-
end
|
64
|
-
````
|
65
|
-
|
66
|
-
When you include this module numerous methods are added to your class that allow you to easily define your page. For the login page you might add the following:
|
67
|
-
|
68
|
-
````ruby
|
69
|
-
class LoginPage
|
70
|
-
include PageObject
|
71
|
-
|
72
|
-
_(:username, :id => 'username')
|
73
|
-
text_field(:password, :id => 'password')
|
74
|
-
button(:login, :id => 'login')
|
75
|
-
end
|
76
|
-
````
|
77
|
-
|
78
|
-
Calling the _text_field_ and _button_ methods adds several methods to our page object that allow us to interact with the items on the page. To login using this page we could simply write the following code:
|
79
|
-
|
80
|
-
````ruby
|
81
|
-
login_page.username = 'cheezy'
|
82
|
-
login_page.password = 'secret'
|
83
|
-
login_page.login
|
84
|
-
````
|
85
|
-
|
86
|
-
Another approach might be to create higher level methods on our page object that hide the implementation details even further. Our page object might look like this:
|
87
|
-
|
88
|
-
````ruby
|
89
|
-
class LoginPage
|
90
|
-
include PageObject
|
91
|
-
|
92
|
-
text_field(:username, :id => 'username')
|
93
|
-
text_field(:password, :id => 'password')
|
94
|
-
button(:login, :id => 'login')
|
95
|
-
|
96
|
-
def login_with(username, password)
|
97
|
-
self.username = username
|
98
|
-
self.password = password
|
99
|
-
login
|
100
|
-
end
|
101
|
-
end
|
102
|
-
````
|
103
|
-
|
104
|
-
and your usage of the page would become:
|
105
|
-
|
106
|
-
````ruby
|
107
|
-
login_page.login_with 'cheezy', 'secret'
|
108
|
-
````
|
109
|
-
|
110
|
-
### Creating your page object
|
111
|
-
page-object supports both [watir-webdriver](https://github.com/jarib/watir-webdriver) and [selenium-webdriver](http://seleniumhq.org/docs/03_webdriver.html). The one used will be determined by which driver you pass into the constructor of your page object. The page object can be created like this:
|
112
|
-
|
113
|
-
````ruby
|
114
|
-
browser = Watir::Browser.new :firefox
|
115
|
-
my_page_object = MyPageObject.new(browser)
|
116
|
-
````
|
117
|
-
|
118
|
-
or
|
119
|
-
|
120
|
-
````ruby
|
121
|
-
browser = Selenium::WebDriver.for :firefox
|
122
|
-
my_page_object = MyPageObject.new(browser)
|
123
|
-
````
|
124
|
-
|
125
|
-
## Known Issues
|
126
|
-
|
127
|
-
See [http://github.com/cheezy/page-object/issues](http://github.com/cheezy/page-object/issues)
|
128
|
-
|
129
|
-
## Contribute
|
130
|
-
|
131
|
-
* Fork the project.
|
132
|
-
* Test drive your feature addition or bug fix. Adding specs is important and I will not accept a pull request that does not have tests.
|
133
|
-
* Make sure you describe your new feature with a cucumber scenario.
|
134
|
-
* Make sure you provide RDoc comments for any new public method you add. Remember, others will be using this gem.
|
135
|
-
* Commit, do not mess with Rakefile, version, or ChangeLog.
|
136
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
137
|
-
* Send me a pull request. Bonus points for topic branches.
|
138
|
-
|
139
|
-
## Copyright
|
140
|
-
|
141
|
-
Copyright (c) 2011-2012 Jeffrey S. Morgan. See LICENSE for details.
|
1
|
+
# meeane-page-object
|
2
|
+
|
3
|
+
A simple fork of Jeff Morgan's page-object gem that assists in creating flexible page objects for testing Columbus Direct websites. The goal is to facilitate creating abstraction layers in your tests to decouple the tests from the items they are testing and to provide a simple interface to the elements on a page. It works with both watir-webdriver and selenium-webdriver.
|
4
|
+
|
5
|
+
The main additions over the original page-object gem are to extend the accessors to find and interact with the particular style of radio buttons used on the Columbus Direct websites. Also, I have extended the _populate_page_with_ method to work with these page element and wait for any AJAX requests these initiate. They work in the same way as the normal radio buttons but rather than using _select_ we use _choose_.
|
6
|
+
|
7
|
+
## Additional Methods Added
|
8
|
+
|
9
|
+
You can declare these _label_ elements using:
|
10
|
+
|
11
|
+
````ruby
|
12
|
+
label(:has_legal_expenses_cover_yes, :for => 'HasLegalExpensesCover_Yes')
|
13
|
+
````
|
14
|
+
|
15
|
+
This will add a _choose_ method in addition to the usual methods PageObjects creates for labels which allow you to select the element as you would a normal radio button. Call this using:
|
16
|
+
|
17
|
+
````ruby
|
18
|
+
choose_has_legal_expenses_cover_yes
|
19
|
+
````
|
20
|
+
|
21
|
+
The _populate_page_with_ method will pick these elements in exactly the same way as normal radio buttons. This means you can complete each page in the normal way using _populate_page_with_ without having to write any extra code.
|
22
|
+
|
23
|
+
````ruby
|
24
|
+
populate_page_with = data_for(:my_details, data)
|
25
|
+
````
|
26
|
+
|
27
|
+
#### Additional Setup
|
28
|
+
Many of the labels on the Columbus Direct websites (including Household & Travel) initiate an AJAX call using jQuery so the _choose_ methods generated call _wait_for_ajax_ to check the page has been updated before moving on. For this to work you need to declare the javascript library your website is using. Add the following to your env.rb file for the Columbus Direct websites:
|
29
|
+
|
30
|
+
````ruby
|
31
|
+
PageObject.javascript_framework = :jquery
|
32
|
+
````
|
33
|
+
|
34
|
+
## Improvements
|
35
|
+
|
36
|
+
Suggested improvements would be to add a facility to interact with the address widgets on the Columbus Direct pages. I'll look to add these at a later date but will use a different approach rather than forking the master as page-object gem already has an extension point that allows us to define our own Element types and register them with the gem. This would seem a better approach.
|
37
|
+
|
38
|
+
## Documentation
|
39
|
+
|
40
|
+
The project [wiki](https://github.com/cheezy/page-object/wiki/page-object) is the first place to go to learn about how to use page-object.
|
41
|
+
|
42
|
+
The rdocs for this project can be found at [rubydoc.info](http://rubydoc.info/gems/page-object/frames).
|
43
|
+
|
44
|
+
To see the changes from release to release please look at the [ChangeLog](https://raw.github.com/cheezy/page-object/master/ChangeLog)
|
45
|
+
|
46
|
+
To read about the motivation for this gem please read this [blog entry](http://www.cheezyworld.com/2010/11/19/ui-tests-introducing-a-simple-dsl/)
|
47
|
+
|
48
|
+
There is a book that describes in detail how to use this gem and others to create a complete view of testing web and other types of applications. The book is named [Cucumber & Cheese](http://leanpub.com/cucumber_and_cheese)
|
49
|
+
|
50
|
+
## Support
|
51
|
+
|
52
|
+
If you need help using the page-object gem please ask your questions on [Stack Overflow](http://stackoverflow.com). Please be sure to use the [page-object-gem](http://stackoverflow.com/questions/tagged/page-object-gem) tag. If you wish to report an issue or request a new feature use the [github issue tracking page](http://github.com/cheezy/page-object/issues).
|
53
|
+
|
54
|
+
## Basic Usage
|
55
|
+
|
56
|
+
### Defining your page object
|
57
|
+
|
58
|
+
You define a new page object by including the PageObject module:
|
59
|
+
|
60
|
+
````ruby
|
61
|
+
class LoginPage
|
62
|
+
include PageObject
|
63
|
+
end
|
64
|
+
````
|
65
|
+
|
66
|
+
When you include this module numerous methods are added to your class that allow you to easily define your page. For the login page you might add the following:
|
67
|
+
|
68
|
+
````ruby
|
69
|
+
class LoginPage
|
70
|
+
include PageObject
|
71
|
+
|
72
|
+
_(:username, :id => 'username')
|
73
|
+
text_field(:password, :id => 'password')
|
74
|
+
button(:login, :id => 'login')
|
75
|
+
end
|
76
|
+
````
|
77
|
+
|
78
|
+
Calling the _text_field_ and _button_ methods adds several methods to our page object that allow us to interact with the items on the page. To login using this page we could simply write the following code:
|
79
|
+
|
80
|
+
````ruby
|
81
|
+
login_page.username = 'cheezy'
|
82
|
+
login_page.password = 'secret'
|
83
|
+
login_page.login
|
84
|
+
````
|
85
|
+
|
86
|
+
Another approach might be to create higher level methods on our page object that hide the implementation details even further. Our page object might look like this:
|
87
|
+
|
88
|
+
````ruby
|
89
|
+
class LoginPage
|
90
|
+
include PageObject
|
91
|
+
|
92
|
+
text_field(:username, :id => 'username')
|
93
|
+
text_field(:password, :id => 'password')
|
94
|
+
button(:login, :id => 'login')
|
95
|
+
|
96
|
+
def login_with(username, password)
|
97
|
+
self.username = username
|
98
|
+
self.password = password
|
99
|
+
login
|
100
|
+
end
|
101
|
+
end
|
102
|
+
````
|
103
|
+
|
104
|
+
and your usage of the page would become:
|
105
|
+
|
106
|
+
````ruby
|
107
|
+
login_page.login_with 'cheezy', 'secret'
|
108
|
+
````
|
109
|
+
|
110
|
+
### Creating your page object
|
111
|
+
page-object supports both [watir-webdriver](https://github.com/jarib/watir-webdriver) and [selenium-webdriver](http://seleniumhq.org/docs/03_webdriver.html). The one used will be determined by which driver you pass into the constructor of your page object. The page object can be created like this:
|
112
|
+
|
113
|
+
````ruby
|
114
|
+
browser = Watir::Browser.new :firefox
|
115
|
+
my_page_object = MyPageObject.new(browser)
|
116
|
+
````
|
117
|
+
|
118
|
+
or
|
119
|
+
|
120
|
+
````ruby
|
121
|
+
browser = Selenium::WebDriver.for :firefox
|
122
|
+
my_page_object = MyPageObject.new(browser)
|
123
|
+
````
|
124
|
+
|
125
|
+
## Known Issues
|
126
|
+
|
127
|
+
See [http://github.com/cheezy/page-object/issues](http://github.com/cheezy/page-object/issues)
|
128
|
+
|
129
|
+
## Contribute
|
130
|
+
|
131
|
+
* Fork the project.
|
132
|
+
* Test drive your feature addition or bug fix. Adding specs is important and I will not accept a pull request that does not have tests.
|
133
|
+
* Make sure you describe your new feature with a cucumber scenario.
|
134
|
+
* Make sure you provide RDoc comments for any new public method you add. Remember, others will be using this gem.
|
135
|
+
* Commit, do not mess with Rakefile, version, or ChangeLog.
|
136
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
137
|
+
* Send me a pull request. Bonus points for topic branches.
|
138
|
+
|
139
|
+
## Copyright
|
140
|
+
|
141
|
+
Copyright (c) 2011-2012 Jeffrey S. Morgan. See LICENSE for details.
|
@@ -200,6 +200,26 @@
|
|
200
200
|
<img src="images/img_pulpit.jpg" alt="The Pulpit Rock" width="304" height="228">
|
201
201
|
</figure>
|
202
202
|
|
203
|
+
<hr/>
|
204
|
+
<p>Collinson Style Radio Buttons</p>
|
205
|
+
|
206
|
+
<span class="form">
|
207
|
+
|
208
|
+
<input id="groupType_IND" value="IND" name="groupType" required="required" checked="checked" type="radio">
|
209
|
+
<label for="groupType_IND"><span>Individual</span></label>
|
210
|
+
|
211
|
+
<input id="groupType_CPL" value="CPL" name="groupType" required="required" type="radio">
|
212
|
+
<label for="groupType_CPL"><span>Couple</span></label>
|
213
|
+
|
214
|
+
<input id="groupType_FAM" value="FAM" name="groupType" required="required" type="radio">
|
215
|
+
<label for="groupType_FAM"><span>Family</span></label>
|
216
|
+
|
217
|
+
<input id="groupType_GRP" value="GRP" name="groupType" required="required" type="radio">
|
218
|
+
<label for="groupType_GRP"><span>Group</span></label>
|
219
|
+
|
220
|
+
</span>
|
221
|
+
|
222
|
+
|
203
223
|
</body>
|
204
224
|
</html>
|
205
225
|
|
@@ -0,0 +1,58 @@
|
|
1
|
+
Feature: Collinson Radio Buttons
|
2
|
+
In order to interact with radio buttons on the Collinson websites
|
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 and clearing a collinson radio button
|
10
|
+
When I select the "Individual" collinson radio button
|
11
|
+
# Then the "Individual" collinson radio button should be selected
|
12
|
+
# When I select the "Couple" collinson radio button
|
13
|
+
# Then the "Couple" collinson radio button should be selected
|
14
|
+
|
15
|
+
Scenario Outline: Locating collinson radio buttons on the Page
|
16
|
+
When I search for the collinson radio button by "<search_by>"
|
17
|
+
And I select the collinson radio button
|
18
|
+
Then the "Individual" collinson radio button should be selected
|
19
|
+
|
20
|
+
Scenarios:
|
21
|
+
| search_by |
|
22
|
+
| id |
|
23
|
+
| class |
|
24
|
+
| name |
|
25
|
+
| xpath |
|
26
|
+
| value |
|
27
|
+
| index |
|
28
|
+
| label |
|
29
|
+
|
30
|
+
@selenium_only
|
31
|
+
Scenario Outline: Locating collinson radio buttons on the Page
|
32
|
+
When I search for the collinson radio button by "<search_by>"
|
33
|
+
And I select the collinson radio button
|
34
|
+
Then the "Individual" collinson radio button should be selected
|
35
|
+
|
36
|
+
Scenarios:
|
37
|
+
| search_by |
|
38
|
+
| css |
|
39
|
+
|
40
|
+
Scenario Outline: Locating collinson radio buttons using multiple parameters
|
41
|
+
When I search for the collinson radio button by "<param1>" and "<param2>"
|
42
|
+
And I select the collinson radio button
|
43
|
+
Then the "Individual" collinson radio button should be selected
|
44
|
+
|
45
|
+
Scenarios:
|
46
|
+
| param1 | param2 |
|
47
|
+
| class | index |
|
48
|
+
| name | index |
|
49
|
+
|
50
|
+
Scenario: Retrieve a collinson radio button
|
51
|
+
When I retrieve a collinson radio button
|
52
|
+
Then I should know it exists
|
53
|
+
And I should know it is visible
|
54
|
+
|
55
|
+
Scenario: Finding a collinson radio button dynamically
|
56
|
+
When I select the collinson radio button while the script is executing
|
57
|
+
Then I should see that the collinson radio button exists
|
58
|
+
And the "Milk" collinson radio button should be selected
|
@@ -0,0 +1,47 @@
|
|
1
|
+
When /^I select the "([^\"]*)" collinson radio button$/ do |how|
|
2
|
+
@page.send "select_#{how.downcase}_id".to_sym
|
3
|
+
end
|
4
|
+
|
5
|
+
When /^I select the "([^\"]*)" collinson collinson radio button$/ do |how|
|
6
|
+
@page.send "choose_#{how.downcase}_id".to_sym
|
7
|
+
end
|
8
|
+
|
9
|
+
Then /^the "([^\"]*)" collinson radio button should be selected$/ do |how|
|
10
|
+
@page.send "#{how.downcase}_id_selected?".to_sym
|
11
|
+
end
|
12
|
+
|
13
|
+
Then /^the "([^\"]*)" collinson collinson radio button should be selected$/ do |how|
|
14
|
+
@page.send "#{how.downcase}_id_selected?".to_sym
|
15
|
+
end
|
16
|
+
|
17
|
+
When /^I search for the collinson radio button by "([^\"]*)"$/ do |how|
|
18
|
+
@how = how
|
19
|
+
end
|
20
|
+
|
21
|
+
When /^I search for the collinson radio button by "([^\"]*)"$/ do |how|
|
22
|
+
@how = how
|
23
|
+
end
|
24
|
+
|
25
|
+
When /^I search for the collinson radio button by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
26
|
+
@how = "#{param1}_#{param2}"
|
27
|
+
end
|
28
|
+
|
29
|
+
When /^I search for the collinson radio button by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
30
|
+
@how = "#{param1}_#{param2}"
|
31
|
+
end
|
32
|
+
|
33
|
+
When /^I select the collinson radio button$/ do
|
34
|
+
@page.send "select_milk_#{@how}".to_sym
|
35
|
+
end
|
36
|
+
|
37
|
+
When /^I select the collinson radio button$/ do
|
38
|
+
@page.send "select_milk_#{@how}".to_sym
|
39
|
+
end
|
40
|
+
|
41
|
+
When /^I select the collinson radio button while the script is executing$/ do
|
42
|
+
@page.collinson radio_button_element(:id => 'milk_id').select
|
43
|
+
end
|
44
|
+
|
45
|
+
Then /^I should see that the collinson radio button exists$/ do
|
46
|
+
@page.milk_id?.should == true
|
47
|
+
end
|
@@ -2,22 +2,42 @@ When /^I select the "([^\"]*)" radio button$/ do |how|
|
|
2
2
|
@page.send "select_#{how.downcase}_id".to_sym
|
3
3
|
end
|
4
4
|
|
5
|
+
When /^I select the "([^\"]*)" collinson radio button$/ do |how|
|
6
|
+
@page.send "choose_#{how.downcase}_id".to_sym
|
7
|
+
end
|
8
|
+
|
5
9
|
Then /^the "([^\"]*)" radio button should be selected$/ do |how|
|
6
10
|
@page.send "#{how.downcase}_id_selected?".to_sym
|
7
11
|
end
|
8
12
|
|
13
|
+
Then /^the "([^\"]*)" collinson radio button should be selected$/ do |how|
|
14
|
+
@page.send "#{how.downcase}_id_selected?".to_sym
|
15
|
+
end
|
16
|
+
|
9
17
|
When /^I search for the radio button by "([^\"]*)"$/ do |how|
|
10
18
|
@how = how
|
11
19
|
end
|
12
20
|
|
21
|
+
When /^I search for the collinson radio button by "([^\"]*)"$/ do |how|
|
22
|
+
@how = how
|
23
|
+
end
|
24
|
+
|
13
25
|
When /^I search for the radio button by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
14
26
|
@how = "#{param1}_#{param2}"
|
15
27
|
end
|
16
28
|
|
29
|
+
When /^I search for the collinson radio button by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
30
|
+
@how = "#{param1}_#{param2}"
|
31
|
+
end
|
32
|
+
|
17
33
|
When /^I select the radio button$/ do
|
18
34
|
@page.send "select_milk_#{@how}".to_sym
|
19
35
|
end
|
20
36
|
|
37
|
+
When /^I select the collinson radio button$/ do
|
38
|
+
@page.send "select_milk_#{@how}".to_sym
|
39
|
+
end
|
40
|
+
|
21
41
|
When /^I select the radio button while the script is executing$/ do
|
22
42
|
@page.radio_button_element(:id => 'milk_id').select
|
23
43
|
end
|
data/lib/page-object/version.rb
CHANGED
metadata
CHANGED
@@ -1,111 +1,126 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meeane-page-object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Jeff Morgan/Steven Hobbs
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-10-06 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: watir-webdriver
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 0.6.9
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 0.6.9
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: selenium-webdriver
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- -
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: 2.42.0
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- -
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: 2.42.0
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: page_navigation
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0.9'
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0.9'
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: rspec
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
|
-
- -
|
67
|
+
- - <
|
60
68
|
- !ruby/object:Gem::Version
|
61
69
|
version: '3.0'
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
|
-
- -
|
75
|
+
- - <
|
67
76
|
- !ruby/object:Gem::Version
|
68
77
|
version: '3.0'
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: cucumber
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
|
-
- -
|
83
|
+
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
75
85
|
version: 1.3.0
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
|
-
- -
|
91
|
+
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
82
93
|
version: 1.3.0
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: yard
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
|
-
- -
|
99
|
+
- - ! '>='
|
88
100
|
- !ruby/object:Gem::Version
|
89
101
|
version: 0.7.2
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
|
-
- -
|
107
|
+
- - ! '>='
|
95
108
|
- !ruby/object:Gem::Version
|
96
109
|
version: 0.7.2
|
97
110
|
- !ruby/object:Gem::Dependency
|
98
111
|
name: rack
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
100
114
|
requirements:
|
101
|
-
- -
|
115
|
+
- - ! '>='
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '1.0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
107
122
|
requirements:
|
108
|
-
- -
|
123
|
+
- - ! '>='
|
109
124
|
- !ruby/object:Gem::Version
|
110
125
|
version: '1.0'
|
111
126
|
description: Page Object DSL that works with both Watir and Selenium
|
@@ -115,11 +130,11 @@ executables: []
|
|
115
130
|
extensions: []
|
116
131
|
extra_rdoc_files: []
|
117
132
|
files:
|
118
|
-
-
|
119
|
-
-
|
120
|
-
-
|
121
|
-
-
|
122
|
-
-
|
133
|
+
- .gitignore
|
134
|
+
- .rspec
|
135
|
+
- .ruby-gemset
|
136
|
+
- .ruby-version
|
137
|
+
- .travis.yml
|
123
138
|
- ChangeLog
|
124
139
|
- Gemfile
|
125
140
|
- Guardfile
|
@@ -186,6 +201,7 @@ files:
|
|
186
201
|
- features/page_level_actions.feature
|
187
202
|
- features/paragraph.feature
|
188
203
|
- features/radio_button.feature
|
204
|
+
- features/radio_button_collinson.feature
|
189
205
|
- features/radio_button_group.feature
|
190
206
|
- features/sample-app/public/jquery-1.3.2.js
|
191
207
|
- features/sample-app/public/jquery.html
|
@@ -223,6 +239,7 @@ files:
|
|
223
239
|
- features/step_definitions/page_level_actions_steps.rb
|
224
240
|
- features/step_definitions/page_traversal_steps.rb
|
225
241
|
- features/step_definitions/paragraph_steps.rb
|
242
|
+
- features/step_definitions/radio_button_collinson_steps.rb
|
226
243
|
- features/step_definitions/radio_button_group_steps.rb
|
227
244
|
- features/step_definitions/radio_button_steps.rb
|
228
245
|
- features/step_definitions/select_list_steps.rb
|
@@ -378,27 +395,27 @@ files:
|
|
378
395
|
homepage: https://github.com/hobbs90/page-object
|
379
396
|
licenses:
|
380
397
|
- MIT
|
381
|
-
metadata: {}
|
382
398
|
post_install_message:
|
383
399
|
rdoc_options: []
|
384
400
|
require_paths:
|
385
401
|
- lib
|
386
402
|
required_ruby_version: !ruby/object:Gem::Requirement
|
403
|
+
none: false
|
387
404
|
requirements:
|
388
|
-
- -
|
405
|
+
- - ! '>='
|
389
406
|
- !ruby/object:Gem::Version
|
390
407
|
version: '0'
|
391
408
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
409
|
+
none: false
|
392
410
|
requirements:
|
393
|
-
- -
|
411
|
+
- - ! '>='
|
394
412
|
- !ruby/object:Gem::Version
|
395
413
|
version: '0'
|
396
414
|
requirements: []
|
397
415
|
rubyforge_project: meeane-page-object
|
398
|
-
rubygems_version:
|
416
|
+
rubygems_version: 1.8.28
|
399
417
|
signing_key:
|
400
|
-
specification_version:
|
418
|
+
specification_version: 3
|
401
419
|
summary: Page Object DSL for browser testing Columbus Direct websites based on Jeff
|
402
420
|
Morgan's page-object gem (version 1.0.2
|
403
421
|
test_files: []
|
404
|
-
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: d854155df87a737f8d013f4a599e7c5c65b3a719
|
4
|
-
data.tar.gz: 0eeca35bd2b3e6223cab2407537e38f988a507c6
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 567f25af15ab6275da05c9d99bfb7b20d2f00d448789fe55671da305a871ed5aacf72d5d19476553b3d542bfcc3f9b33ae58bcd2fec6a55608956555d52a1611
|
7
|
-
data.tar.gz: b9acbbf3df6565e5e75447f581dbe23e10407db28de94a6e2b7788c8b7e7df67f9f37ced5444d354597c1ae64e90cb595d190d1b4022047a9232beebcaa77333
|