Selenium – Letzte Rettung
14.12.2009 | 1 Minuten Lesezeit
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.
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.
Weitere Beiträge
von Thomas Jaspers
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Thomas Jaspers
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.