Selenium – Letzte Rettung

Keine Kommentare

Wer mit Selenium arbeitet kennt sicherlich das Problem, dass sich bei „komplizierten“ Webseiten ein mit der Selenium IDE aufgezeichneter Testfall nicht immer erfolgreich abspielen lässt. Kompliziert bedeutet hierbei oft, dass viel JavaScript im Spiel ist. Manchmal kommt es aber noch schlimmer und man findet einfach keinen passenden XPath- oder DOM-Ausdruck, um ein bestimmtes Element korrekt anzusteuern. In einem solchen Fall kann das Simulieren eines „nativen Tastendrucks“ die letzte Rettung sein.

Im folgenden Beispiel wird die Selenium-Library des Robot Frameworks genutzt, da sich das Beispiel dadurch gut lesbar ist. Natürlich lässt sich dies aber auch auf andere Selenium-Libraries übertragen. Im Beispiel wird eine Suchanfrage in Google durchgeführt, bei welcher der Suchen-Button nicht auf dem normalen Weg angeklickt wird – was hier natürlich auch möglich wäre – sondern der Button wird mit Hilfe nativer Tastatureingaben angesteuert.

ScreenshotSelKey1

Es wird zunächst der Suchbegriff in das Eingabefeld eingegeben. Unter der Annahme, dass sich der „Suchen“-Button nicht anders ansteuern lässt, wird nun das Eingabefeld fokusiert. Dann wird einmal TAB gedrückt (Press Key Native 9) womit der „Suchen“-Button den Fokus bekommt. Dort wird dann durch Press Key Native 10 RETURN gedrückt und die Suchabfrage abgeschickt.

Es ist natürlich extrem hilfreich, wenn sich ein bekanntes Feld fokussieren lässt, wobei ja ein Element auf der Seite immer den Fokus hat und sich so durch mehrmaliges TAB drücken immer das passende Element ansteuern lässt. Dies ist aber eine ziemlich hässliche Lösung und lässt sich meist vermeiden, da es extrem selten ist, dass sich kein bekanntes Element auf einer Seite fokussieren lässt. Die benutzten Keycodes sind in java.awt.event.KeyEvent definiert.

Das Simulieren nativer Tastatureingaben hat natürlich einige offensichtliche Nachteile und sollte daher auch nur als letzte Möglichkeit eingesetzt werden. Dann kann es aber in der Tat die „Letzte Rettung“ sein.

Thomas Jaspers

Langjährige Erfahrung in agilen Softwareprojekten unter Einsatz von Java-Enterprise-Technologien. Schwerpunkt im Bereich der Testautomatisierung (Konzepte und Open-Source Werkzeuge).

Über 1.000 Abonnenten sind up to date!

Die neuesten Tipps, Tricks, Tools und Technologien. Jede Woche direkt in deine Inbox.

Kostenfrei anmelden und immer auf dem neuesten Stand bleiben!
(Keine Sorge, du kannst dich jederzeit abmelden.)

* Hiermit willige ich in die Erhebung und Verarbeitung der vorstehenden Daten für das Empfangen des monatlichen Newsletters der codecentric AG per E-Mail ein. Ihre Einwilligung können Sie per E-Mail an datenschutz@codecentric.de, in der Informations-E-Mail selbst per Link oder an die im Impressum genannten Kontaktdaten jederzeit widerrufen. Von der Datenschutzerklärung der codecentric AG habe ich Kenntnis genommen und bestätige dies mit Absendung des Formulars.

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.