ae_page_objects
ae_page_objects copied to clipboard
Page Objects for Capybara
`ElementProxy` [undefs a bunch of standard methods](https://github.com/appfolio/ae_page_objects/blob/135ddadd8c045833253b1c67ddaabb01f540832e/lib/ae_page_objects/element_proxy.rb#L4-L10) on objects: ``` ruby # Remove all instance methods so even things like class() # get handled by method_missing(). instance_methods.each do |m| unless...
Currently, you can use node.value to get the value of the selected option, but it would be nice if there were a method on Select objects to return the text...
For example, ``` ruby class Thing < AePageObjects::Element #... private element :foo end ``` should define `foo` as a private method.
https://gemnasium.com/appfolio/ae_page_objects
`AePageObjects::Form` and the DSL method `form_for()` are used like so: ``` ruby form_for :login do element :email element :password end ``` This is similar to using the `element` DSL method,...
**Non-scoped elements** The element DSL should support arguments specifying that the element being declared should use the same underlying node as its parent. Perhaps: ``` ruby element :login, locator: :parent...
**Provide mechanism for manipulating default locator** The DSL should provide a mechanism for wrapping a collection of elements with a name that will be included in `Element#__full_name__` Perhaps: ``` ruby...
Remove unnecessary full url check in `normalize_url` method in [application_router.rb](https://github.com/appfolio/ae_page_objects/blob/130b710b85fcc95e2e2d03fe2f95feb21331ebcd/lib/ae_page_objects/core/application_router.rb) since the domain and protocol part are already removed [here](https://github.com/appfolio/ae_page_objects/blob/v1.4.0/lib/ae_page_objects/node.rb#L49-L55)
With the addition of `window.change_to` and `browser.find_document` the standard pattern for command methods is like so: ``` ruby def save! node.click_button('Submit') window.change_to(ResultantPage) end ``` The above pattern says that the...
Some functionality depends on Selenium::WebDriver. Make any driver specific support conditional on the driver. Add tests and dependencies for supported drivers.