Looking for selenium-webdriver Keywords? Try Ask4Keywords

selenium-webdriverSeitenobjektmodell


Einführung

Eine wichtige Rolle bei der Automatisierung von Websites und Webanwendungen besteht darin, Elemente auf dem Bildschirm zu identifizieren und mit ihnen zu interagieren. Elemente werden in Selen mithilfe von Locators und der By Klasse gefunden. Diese Locators und Interaktionen werden als bewährte Methode in Page Objects eingefügt, um doppelten Code zu vermeiden und die Wartung zu vereinfachen. Es kapselt WebElements und nimmt an, Verhalten und WebElements auf der Seite (oder einem Teil einer Seite in einer Web-App) zu enthalten.

Bemerkungen

Das Seitenobjektmodell ist ein Muster, in dem wir objektorientierte Klassen schreiben, die als Schnittstelle zu einer bestimmten Ansicht einer Webseite dienen. Wir verwenden die Methoden dieser Seitenklasse, um die erforderliche Aktion auszuführen. Vor einigen Jahren manipulierten wir den HTML-Code der Webseite direkt in Testklassen, was sehr schwierig zu pflegen war und zusammen mit den Änderungen der Benutzeroberfläche sehr spröde war.

Wenn Sie Ihren Code jedoch so organisieren, dass das Seitenobjektmuster so angeordnet ist, steht Ihnen eine anwendungsspezifische API zur Verfügung, mit der Sie die Seitenelemente bearbeiten können, ohne sich im HTML-Bereich zu bewegen. Die grundlegende Daumenlehne besagt, dass Ihr Seitenobjekt alles enthalten sollte, was ein Mensch auf dieser Webseite tun kann. Um beispielsweise auf das Textfeld auf einer Webseite zuzugreifen, sollten Sie dort eine Methode verwenden, um den Text abzurufen und nach allen Änderungen den String zurückzugeben.

Einige wichtige Punkte, die Sie beim Entwerfen der Seitenobjekte beachten sollten:

  1. Das Seitenobjekt sollte in der Regel nicht nur für Seiten erstellt werden, Sie sollten es jedoch lieber für bedeutende Elemente der Seite erstellen. Beispielsweise sollte eine Seite mit mehreren Registerkarten zum Anzeigen verschiedener Diagramme Ihrer Wissenschaftler die gleiche Anzahl von Seiten haben wie die Anzahl der Registerkarten.

  2. Wenn Sie von einer Ansicht zur anderen navigieren, sollte die Instanz der Seitenklassen zurückgegeben werden.

  3. Die Dienstprogrammmethoden, die nur für eine bestimmte Ansicht oder Webseite vorhanden sein müssen, sollten nur zu dieser Seitenklasse gehören.

  4. Die Assertion-Methoden sollten nicht von Seitenklassen beachtet werden. Sie können Methoden haben, um boolean zurückzugeben, aber sie dort nicht zu überprüfen. Um beispielsweise den vollständigen Namen des Benutzers zu überprüfen, können Sie eine Methode zum Abrufen eines booleschen Werts verwenden:

     public boolean hasDisplayedUserFullName (String userFullName) {
         return driver.findElement(By.xpath("xpathExpressionUsingFullName")).isDisplayed();
     }
    
  5. Wenn Ihre Webseite auf iframe basiert, sollten Sie auch Seitenklassen für iframes verwenden.

Vorteile des Page Object Pattern:

  1. Saubere Trennung zwischen Testcode und Seitencode
  2. Im Falle einer Änderung der Benutzeroberfläche der Webseite müssen Sie Ihren Code nicht an mehreren Stellen ändern. Ändern Sie nur in Seitenklassen.
  3. Keine Streuelemente.
  4. Macht den Code verständlicher
  5. Einfache Wartung

Seitenobjektmodell Verwandte Beispiele