There are three parts to the Coded UI Extension library.
Coded UI Fluent
Additional HTML controls to provide clean, consistent search expressions.
Fluent extensions to reduce the amount of code required to find UI Test Controls while also improving the readability of the search expression.
Extends the existing Coded UI type hierarchy to be fully compatible with exisitng tests using Coded UI.
Page Modeling Abstraction
- Platform agnostic set of abstractions over UI capabilities.
Express UI in terms of simple interfaces likes:
Coded UI Implementation of the Page Modeling Abstraction
- Let the framework provide consistent semantics for testing your UI
- Separate modeling pages of your application from the tests against them
Find on Nuget »
Examples and comparison of standard Coded UI scripts and using the extension libraries.
These examples work with the source code and act as the actual tests to validate the framework functionality.
You can download the source code from github and run the tests to see exactly how the code works.
Simple Html Input Controls
Examples of manipulating various html input controls.
Static Child (Nested Controls)
Examples of how to use the Static Child base class for distinguishing nested controls on a page.
Here is a set of refactorings to understand why Page Objects and Page Models can help your test code.
Initial sample app tests with no strategy for how to perform testing.
Hide Confirm Password
First requirement change to hide the confirm password input until both username and password have been set.
Hide Register Button
Second requirement change to hide the register button until both username and password have been set.
Add Orders Page
Add an Orders page where logged in users can place orders.
Add and Cancel Buttons
First change to Orders page to not show new order fields until the Add button is clicked. Also,
include a cancel button which will hide the new order fields.
Quantity and Delete
Second change to the Orders page to add a quantity field which only shows when an Order ID has been set.
Also, add a delete button to the orders table for each order.
Require that the user has first and last name before entering orders.
Find on Github »