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();

 

 

 


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.