From 0282d6663f06816da33b7dd4e919018ab56bf742 Mon Sep 17 00:00:00 2001 From: Colin But Date: Sat, 18 Jun 2016 21:08:15 +0100 Subject: [PATCH] README --- page-object/README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 page-object/README.md diff --git a/page-object/README.md b/page-object/README.md new file mode 100644 index 000000000..e66e184c3 --- /dev/null +++ b/page-object/README.md @@ -0,0 +1,32 @@ +--- +layout: pattern +title: Page Object +folder: page-object +permalink: /patterns/page-object/ +categories: Testing +tags: +- Testing +- Web Development +- Encapsulation +--- + +## Intent + +Page Object encapsulates the UI, hiding the underlying UI widgetry of an application (commonly a web application) and providing an application-specific API to allow the manipulation of UI components required for tests. In doing so, it allows the test class itself to focus on the test logic instead. + + +![alt text](./etc/page-object.png "Page Object") + + +## Applicability + +Use the Page Object pattern when + +* You are writing automated tests for your web application and you want to separate the UI manipulation required for the tests from the actual test logic. +* Make your tests less brittle, and more readable and robust + +## Credits + +* [Martin Fowler - PageObject](http://martinfowler.com/bliki/PageObject.html) +* [Selenium - Page Objects](https://github.com/SeleniumHQ/selenium/wiki/PageObjects) +