selenium page objects101

19
Page Objects 101 Adam Goucher @adamgoucher [email protected] Wednesday, July 27, 2011

Upload: adam-goucher

Post on 16-Jan-2015

24.825 views

Category:

Technology


0 download

DESCRIPTION

Page Objects are a way of representing a page in an OO manner. This presentation introduces an implementation of the pattern and its components.

TRANSCRIPT

Page 1: Selenium Page Objects101

Page Objects101

Adam Goucher@adamgoucher

[email protected]

Wednesday, July 27, 2011

Page 2: Selenium Page Objects101

A language neutral pattern for representing a complete page

or portion of a page in an Object Oriented manner.

Wednesday, July 27, 2011

Page 3: Selenium Page Objects101

3 [Big] Reasons

1.Maintenance

2.Readability of Scripts

3.Separation of Concerns

Wednesday, July 27, 2011

Page 4: Selenium Page Objects101

Scripts & Page Objects

Wednesday, July 27, 2011

Page 5: Selenium Page Objects101

Page Objects

Wednesday, July 27, 2011

Page 6: Selenium Page Objects101

Locators

•A specific locator appears only once in your entire set of PO

•Locators do not cross PO boundaries

Wednesday, July 27, 2011

Page 7: Selenium Page Objects101

Elements

•Anything directly interacted with [via Selenium] is an Element

•Elements override Get/Set

Wednesday, July 27, 2011

Page 8: Selenium Page Objects101

Tip - Create common base classes for

Elements

Wednesday, July 27, 2011

Page 9: Selenium Page Objects101

Actions

•Repeated series of commands

•[Usually] Named with verbs

•[Often] Require Sync

Wednesday, July 27, 2011

Page 10: Selenium Page Objects101

Synchronization

• In Synchronization

•Out Synchronization

• ‘Flag’ driven

Wednesday, July 27, 2011

Page 11: Selenium Page Objects101

Tip - Create custom wait_for_* method in a

common base PO

Wednesday, July 27, 2011

Page 12: Selenium Page Objects101

1.Locator

2.Element Implementation

3.Add Element to Page Object

4.Actions

Order of Operations

Wednesday, July 27, 2011

Page 13: Selenium Page Objects101

Tip - Do NOT create the whole PO at once. Do ONLY what you

need now.

Wednesday, July 27, 2011

Page 14: Selenium Page Objects101

Asserts do not belong in PO

Wednesday, July 27, 2011

Page 15: Selenium Page Objects101

Scripts

Wednesday, July 27, 2011

Page 16: Selenium Page Objects101

Do not have synchronization code

Wednesday, July 27, 2011

Page 17: Selenium Page Objects101

Do not have driver API calls

Wednesday, July 27, 2011

Page 18: Selenium Page Objects101

Do have interactions with PO

Wednesday, July 27, 2011

Page 19: Selenium Page Objects101

Do have asserts

Wednesday, July 27, 2011