Was ist Linktext in Selen?
Ein Linktext in Selenium wird verwendet, um die Hyperlinks auf einer Webseite zu identifizieren. Sie wird mit Hilfe eines Ankertags ermittelt. Zum Erstellen der Hyperlinks auf einer Webseite können wir ein Ankertag gefolgt vom Link Text verwenden.
Links, die einem Kriterium entsprechen
Auf Links kann zugegriffen werden, indem der Linktext exakt oder teilweise übereinstimmt. Die folgenden Beispiele bieten Szenarien, in denen mehrere Übereinstimmungen vorhanden wären, und erläutern, wie WebDriver mit ihnen umgehen würde.
In diesem Tutorial lernen wir die verfügbaren Methoden zum Suchen und Zugreifen auf die Links mit Webdriver kennen. Außerdem werden wir einige der häufigsten Probleme beim Zugriff auf Links erörtern und weiter erläutern, wie sie behoben werden können.
Folgendes werden Sie lernen:
- Zugriff auf Links mit Exact Text Match: By.linkText ()
- Zugreifen auf Links mit Partial Text Match: By.partialLinkText ()
- So erhalten Sie mehrere Links mit demselben Linktext
- Groß- und Kleinschreibung für Linktext
- Links außerhalb und innerhalb eines Blocks
Zugriff auf Links mit Exact Text Match: By.linkText ()
Der Zugriff auf Links mit ihrem genauen Linktext erfolgt über die By.linkText () -Methode . Wenn jedoch zwei Links denselben Linktext haben, greift diese Methode nur auf den ersten zu. Betrachten Sie den folgenden HTML-Code
Wenn Sie versuchen, den folgenden WebDriver-Code auszuführen, greifen Sie auf den ersten Link "Hier klicken" zu
Code:
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;öffentliche Klasse MyClass {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-Treiber = neuer ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("hier klicken")). click ();System.out.println ("Titel der Seite ist: + driver.getTitle ());driver.quit ();}}}}
So funktioniert es:
Infolgedessen werden Sie automatisch zu Google weitergeleitet.
Zugreifen auf Links mit Partial Text Match: By.partialLinkText ()
Der Zugriff auf Links über einen Teil ihres Linktextes erfolgt mit der By.partialLinkText () -Methode. Wenn Sie einen Teilverknüpfungstext mit mehreren Übereinstimmungen angeben, wird nur auf die erste Übereinstimmung zugegriffen. Betrachten Sie den folgenden HTML-Code.
Wenn Sie den folgenden WebDriver-Code ausführen, werden Sie weiterhin zu Google weitergeleitet.
Code:
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;öffentliche Klasse P1 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-Treiber = neuer ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("hier")). click ();System.out.println ("Titel der Seite ist: + driver.getTitle ());driver.quit ();}}}}
So erhalten Sie mehrere Links mit demselben Linktext
Wie kann man das oben genannte Problem umgehen? Wie gehen wir vor, wenn mehrere Links mit demselben Linktext vorhanden sind und wir auf andere Links als den ersten zugreifen möchten?
In solchen Fällen werden im Allgemeinen verschiedene Locators verwendet, nämlich By.xpath (), By.cssSelector () oder By.tagName ().
Am häufigsten wird By.xpath () verwendet. Es ist das zuverlässigste, sieht aber auch komplex und nicht lesbar aus.
Groß- und Kleinschreibung für Linktext
Bei den Parametern für By.linkText () und By.partialLinkText () wird zwischen Groß- und Kleinschreibung unterschieden, was bedeutet, dass die Großschreibung wichtig ist. Auf der Homepage von Mercury Tours gibt es beispielsweise zwei Links, die den Text "egis" enthalten - einer ist der Link "REGISTRIEREN" im oberen Menü und der andere der Link "Hier registrieren" im unteren rechten Bereich der Seite.
Obwohl beide Links die Zeichenfolge "egis" enthalten, greift die Methode "By.partialLinkText ()" abhängig von der Groß- und Kleinschreibung der Zeichen getrennt auf diese beiden Links zu. Siehe den folgenden Beispielcode.
Code
public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-Treiber = neuer ChromeDriver ();driver.get (baseUrl);String theLinkText = driver.findElement (By.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (By.partialLinkText ("EGIS")).getText ();System.out.println (theLinkText);driver.quit ();}}
Links außerhalb und innerhalb eines Blocks
Der neueste HTML5-Standard ermöglicht das Platzieren der -Tags innerhalb und außerhalb von Tags auf Blockebene wie