Quick Navigator
© 2004-2019 by Rocketlab

hand crafted in the beautiful mountains of Switzerland
Elemente einer HTML Seite

Selenium – Linkelemente adressieren


Selenium - Webdriver Academy

 

Selenium im Umgang mit Linkelementen einer HTML Site

Selenium bietet mehrere Möglichkeiten, auf Linkelemente einer Website zugreifen zu können. Wie bereits im Artikel Lokalisierung von Seitenelementen aufgezeigt gibt es bereits zahlreiche Methoden, um Elemente zu finden, z.B. über CSS Selektoren, DOM Struktur, xPath usw. In diesem Artikel wird der Bereich Links nun noch um einige wertvolle Methoden erweitert, so dass Sie wirklich in der Lage sind, alle Elemente und Links zu adressieren.

Wieder gehen wir per findElement() Methode vor, welche uns eine enorme Funktionsvielfalt zur Verfügung stellt.

 

Methode Beschreibung

Codebeispiel

 By.linkText() Es wird ein Link angeklickt, welcher den mitgelieferten String innerhalb der a-Tags zeigt. z.B. <a href=“http://www.example.com/Muenchen“>{String}</a>Der String muss exakt so angegeben werden, wie er im HTML Quellcode vorkommt, da Selenium hier case-sensitive vorgeht.HTML5 Besonderheit: Seit Einführung von HTML5 als Standard ist es dem a-href Tag erlaubt, nicht mehr nur innerhalb, sondern jetzt auch ausserhalb der folgenden Tags zu stehen: <div>, <p> und <h1>. Die By.linkText() Methode erkennt Links sowohl innerhalb als auch ausserhalb dieser Block-Elemente.  driver.findElement(By.linkText({String})).click();
 By.partialLinkText()  Funktioniert ähnlich wie By.linkText(), allerdings ist hier nur ein Teil des innertext als Angabe nötig. Bedenken Sie aber, dass hier die Gefahr besteht, dass es mehr als ein Element mit diesen Eigenschaften auf der gleichen Website existiert. Adressiert wird dann jeweils nur das Element, welches als erstes auf der Website (von oben angefangen) vorkommt.  driver.findElement(By.partialLinkText("name")).click();
 By.tagName(„a“)  Dies ist eine sehr ungenaue Methode, da Sie hiermit erst einmal alle vorkommenden Links auf einer Site treffen. Diese Methode bietet sich aber dennoch an, um alle Links zunächst einmal „einzusammeln“ und dann per Loop (z.B. über eine While Schleife) alle Links überprüfen, ob eventuell ein Deadlink auf der Seite existiert.  List<WebElement> linkElements = driver.findElements(By.tagName("a"));
 By.cssSelector()  Bilder-Links können über die verschiedenen Selektoren wie im Artikel Lokalisierung von Seitenelementen bereits erklärt adressiert werden. Am einfachsten über den title Tag, name Tag oder was immer im Sourcecode vorhanden ist.Das Codebeispiel rechts bezieht sich auf folgenden Source (Auszug):<a class=“lfloat“ title=“Software Testing mit Rocketlab“ href=“https://www.rocketlab.de“>
<i class=“com_logo img xlt_8fjkl ygt_3ijlk2″>
<u>Rocketlab Logo</u>
</i>
</a>Natürlich ist auch xPath, Id usw. anwendbar in gleicher Weise.
 driver.findElement(By.cssSelector("a[title=\"Software Testing mit Rocketlab\"]")).click();

 

 

 

Selenese


Was ist Selenese?

 

Wie bereits auf der Site Testautomatisierung erwähnt, arbeiten wir unter anderem mit dem Testing Framework Selenium. Sowohl die IDE (Firefox Extension) als auch die Testscripts, die wir in Java schreiben, enthalten eine Art Steuerbefehle, also Kommandos, speziell für Selenium, die man Selenese Commands nennt. Diese repräsentieren quasi die Steuersprache von Selenium.

 

Ein Kurzüberblick der wichtigsten Selenese Befehle (Commands):


Open

Öffnet eine Seite durch Angabe einer URL


click bzw. clickAndWait

Führt einen Mouse Klick aus und (optional) wartet bis das Kommando ausgeführt ist


verifyTitle/assertTitle

Überprüft einen Seitentitel gegen einen erwarteten Titel


verifyTextPresent

Überprüft, ob ein Text(ausschnitt) auf einer Site vorhanden ist


verifyElementPresent

Überprüft, ob ein UI Element (definiert durch HTML Tags) auf einer Site vorhanden ist


verifyText

Überprüft die Existenz eines Text(ausschnitts) und übereinstimmender HTML Tags auf einer Site


verifyTable

Überprüft eine Tabelle auf zu erwartenden Inhalt


waitForPageToLoad

Lässt das Script warten, bis eine Site fertig geladen ist (inklusive externer Dateien wie JS, CSS usw.)


waitForElementPresent

Pausiert die Ausführung des Scripts, bis ein UI Element (durch HTML Tags definiert) auf einer Site präsent ist


 

Diese Befehlsübersicht soll noch im Laufe der Zeit komplettiert werden. Bitte haben Sie noch Geduld und schauen Sie immer mal wieder vorbei.

Quelle: Selenium Reference

 


Launch the rocket!


Wir freuen uns auf neue Partner, die mit uns gemeinsam
außergewöhliche Dinge erschaffen möchten.
Schreiben Sie uns, wenn Sie mit uns zusammenarbeiten möchten.