Page Explorer

Semi-Automatic Crawler & Enroller for Producing an Object Repository

Description

The Page Explorer is responsible for exploring a website semi-automatically and extracting the contents - pages and controls - into an XML based Object Repository. The Object Repository represents the foundation for the sub-sequential code generation of page objects and test scripts. The Page Explorer consist of following two components - Crawler & Enroller.

The crawler is manually controlled by the user navigating a website within the actual application domain. The enroller is responsible for interpreting web pages and extracting all relevant information specified into the Object Repository. The Page Explorer is in general terms operated by a configuration containing the specific application settings.

The enrollment of pages is controlled by the user in a simple GUI based dialog and will thereby only extract pages into the Object Repository when requested.

Screenshot

Output

Following snippet shows an example of an XML based generated Object Repository...

<?xml version="1.0" encoding="utf-8"?>
<Repository xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Project projectName="Rojabo">
    <Menus>
      <Menu class="MainMenuPage" baseClass="BaseMenuPage">
        <Methods>
          <Method name="Tests" path="Tests" class="TestsPage" location="/tests" />
          <Method name="Events" path="Events" class="EventsPage" location="/events" />
        </Methods>
      </Menu>
    </Menus>
    <Pages>
      <Page class="EventsPage">
        <Controls>
          <Control type="WebLink" name="NewEvent" locator="By.LinkText(&quot;New event&quot;)" />
          <Control type="WebTable" name="Events" locator="By.XPath(&quot;//table[@src='grid']&quot;)" />
        </Controls>
      </Page>
      <Page class="EventsNewPage">
        <Controls>
          <Control type="WebTextBox" name="EventName" locator="By.Id(&quot;event_name&quot;)" />
          <Control type="WebComboBox" name="EventYear" locator="By.Id(&quot;event_year&quot;)" />
          <Control type="WebComboBox" name="EventMonth" locator="By.Id(&quot;event_month&quot;)" />
          <Control type="WebComboBox" name="EventDay" locator="By.Id(&quot;event_day&quot;)" />
          <Control type="WebComboBox" name="EventType" locator="By.Id(&quot;event_type&quot;)" />
          <Control type="WebButton" name="Save" locator="By.Id(&quot;submit&quot;)" />
          <Control type="WebLink" name="Cancel" locator="By.LinkText(&quot;cancel&quot;)" />
        </Controls>
      </Page>
    </Pages>
  </Project>
</Repository>