Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training,
learning paths, books, tutorials, and more.

Fluent page objects

We are going to have a look at how we can turn our existing page objects into fluent page objects to enhance the readability and discoverability of our code. To do that, we are going to design DSL for our page objects that uses chains of commands to describe the action(s) that are being performed. Each chained command will return either a reference to itself, a reference to a new method, or a void.

The LoginPage object that we created earlier in this chapter will provide a good base for a fluent page object. It currently looks like this: