VOOZH about

URL: https://deepwiki.com/Accenture/Ocaramba/3.2-page-objects:-theinternet-and-kendo-examples

⇱ Page Objects: TheInternet and Kendo Examples | Accenture/Ocaramba | DeepWiki


Loading...
Last indexed: 6 June 2026 (fb3580)
Menu

Page Objects: TheInternet and Kendo Examples

This page documents the Ocaramba.Tests.PageObjects project, which serves as the reference implementation for the Page Object Model (POM) within the Ocaramba framework. It demonstrates how to utilize ElementLocator, GetElement, and high-level WebElements to interact with complex UI components from "The Internet" (a popular test automation site) and Kendo UI widgets.

TheInternet Page Objects

The project provides a comprehensive suite of page objects for "The Internet" herokuapp. These classes inherit from ProjectPageBase Ocaramba.Tests.PageObjects/PageObjects/TheInternet/InternetPage.cs35 gaining access to the DriverContext.

InternetPage (Navigation Hub)

The InternetPage class acts as the central entry point for navigating the application. It contains methods to open the home page with or without credentials and provides navigation methods to specific sub-pages.

FormAuthenticationPage

This page handles login scenarios. It demonstrates the use of JavaScript execution for element interaction and complex waits.

IFramePage and Screenshots

The IFramePage demonstrates handling frames and taking element-level screenshots, which is critical for visual regression testing.

Key Interaction Flow: Navigation to Authentication

The following diagram illustrates the flow from the main hub to the authentication page and the internal locator resolution.

Diagram: Navigation and Locator Mapping


Sources: Ocaramba.Tests.PageObjects/PageObjects/TheInternet/InternetPage.cs174-180 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/FormAuthenticationPage.cs47-52 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/FormAuthenticationPage.cs101-106

Kendo UI Page Objects

Ocaramba provides specialized wrappers for Kendo UI components. The reference project includes examples for complex widgets like Grids and TreeViews. These wrappers encapsulate the JavaScript logic required to interact with Kendo's internal APIs.

Supported Kendo Components

ComponentPage Object ClassKey Functionality
ComboBoxKendoComboBoxPageSelecting items by text/index in Kendo ComboBoxes.
DropDownListKendoDropDownListPageInteraction with Kendo-specific dropdown structures.
GridKendoGridPageAccessing data rows and columns within a Kendo Grid.
TreeViewKendoTreeViewPageExpanding nodes and selecting items in hierarchical trees.

Implementation Patterns

Kendo page objects utilize this.Driver.GetElement<KendoWrapper>(locator) to access extended functionality. For example, a KendoGrid allows retrieving the number of rows or specific cell values without manually parsing the underlying HTML table structure.

Technical Implementation Details

ElementLocator and GetElement

The project serves as a primary example of using ElementLocator to define metadata for elements separately from the logic.

Interaction Logic Flow

The following diagram shows how a Page Object method interacts with the Ocaramba core extensions to perform an action.

Diagram: Form Authentication Sequence


Sources: Ocaramba.Tests.PageObjects/PageObjects/TheInternet/FormAuthenticationPage.cs90-99 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/FormAuthenticationPage.cs101-106 OcarambaLite/Extensions/SearchContextExtensions.cs54-57

Specialized Page Methods

Sources: Ocaramba.Tests.PageObjects/PageObjects/TheInternet/InternetPage.cs1-180 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/FormAuthenticationPage.cs1-107 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/IFramePage.cs33-72 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/KeyPressesPage.cs1-124 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/BasicAuthPage.cs1-75 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/FloatingMenuPage.cs1-67 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/ForgotPasswordPage.cs1-86 Ocaramba.Tests.PageObjects/PageObjects/TheInternet/SecureFileDownloadPage.cs33-73 OcarambaLite/Extensions/SearchContextExtensions.cs40-147 OcarambaLite/Helpers/TakeScreenShot.cs33-60