Oft sehen wir uns mit kaputten Hyperlinks auf Websites konfrontiert. Heute lernen wir, wie man defekte Links mit Selen findet. Bevor wir uns diesen Themen zuwenden, lernen wir die grundlegenden Fragen kennen.
Was sind Broken Links?
Ein defekter Link (auch bekannt als toter Link oder Link verrottet) ist ein Link auf einer Website, der nicht funktioniert (dh., es leitet nicht zu der Seite um, zu der es soll) aus einem oder mehreren der folgenden Gründe.
- Die Zielwebseite ist nicht mehr verfügbar (offline oder dauerhaft verschoben).
- Die Zielwebseite wurde verschoben, ohne dass eine Weiterleitung hinzugefügt wurde.
- Die URL-Struktur (Permalinks) einer Webseite wird geändert.
- Eine ungültige URL (falsch geschrieben, falsch eingegeben usw.) wird auf der Quellwebseite erwähnt.
- Aufgrund von Firewall- oder Geolocation-Einschränkungen.
Eine URL mit einem 2xx-HTTP-Statuscode ist gültig und URLs mit 4xx- und 5xx-HTTP-Statuscodes sind ungültig. Wenn Sie mit dem 4xx-Statuscode konfrontiert sind, liegt dies an einem clientseitigen Fehler und der Statuscode ist 5xx, was bedeutet, dass es sich um einen Serverantwortfehler handelt.
Warum nach defekten Links suchen?
Webserver geben eine Fehlermeldung zurück, wenn ein Benutzer versucht, auf einen defekten Link zuzugreifen. Benutzer werden zu einer Fehlerseite weitergeleitet, wenn sie auf einen defekten Link klicken. Dies führt zu einer schlechten Benutzererfahrung. Wir müssen sie kontinuierlich bearbeiten und alle vorhandenen defekten Links auf unserer Website entfernen. Wir können diesen Vorgang manuell durchführen. Die meisten Websites haben Hunderte oder Tausende von Links, und es ist nicht möglich, alle manuell zu testen. Es erfordert viel Zeit, Ressourcen und Mühe. Anstatt manuell zu überprüfen, können wir Selenium WebDriver nutzen, um defekte Links zu testen.
Verpassen Sie nicht: Manuelles Testen vs automatisiertes Testen – Unterschiede, die jeder kennen sollte
So überprüfen Sie die defekten Links und Bilder
Befolgen Sie die folgenden Schritte, um defekte Links zu überprüfen.
- Alle Links sind entweder mit link <a> oder image <img> auf einer Webseite markiert. Sammeln Sie die Links basierend auf den Tags <a>, <img>
- Senden Sie eine HTTP-Anfrage und lesen Sie den HTTP-Antwortcode jedes Links.
Auf diese Weise können Sie anhand von Antwortcodes herausfinden, ob der Link gültig oder ungültig ist.
Defekte Links mit Selenium WebDriver finden
Einer der wichtigsten Testfälle besteht darin, defekte Links auf einer Webseite zu finden. Aufgrund der Existenz von defekten Links wird der Ruf Ihrer Website beschädigt und es wird negative Auswirkungen auf Ihr Unternehmen haben. Es ist zwingend erforderlich, alle defekten Links vor der Veröffentlichung zu finden und zu beheben. Wenn ein Link nicht funktioniert, sehen wir eine Meldung als 404 Seite nicht gefunden.
Sehen wir uns einige der HTTP-Statuscodes an.
Der folgende Code ruft alle Links einer bestimmten Website ab (dh SoftwareTestingMaterial.com) mit WebDriver-Befehlen und liest den Status jedes href-Links mit Hilfe der HttpURLConnection-Klasse.
Klicken Sie hier für weitere Informationen über HttpURLConnection
Gegeben klare Erklärung in den Kommentaren innerhalb des Programms selbst. Bitte gehen Sie es durch, um den Fluss zu verstehen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
paket softwareTestingMaterial;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class BrokenLinks {
public static void main(String args) throws InterruptedException {
//Instantiating FirefoxDriver
System.setProperty(„webdriver.gecko.driver“, „D:\\ Selenium-Umgebung \\ Treiber \\ geckodriver.exe“);
WebDriver-Treiber = neuer FirefoxDriver();
// Maximieren Sie den Browser
Treiber.verwalten().Fenster().maximieren();
// Implizites Warten auf 10 Sekunden
Treiber.verwalten().Timeouts().implicitlyWait(10, TimeUnit.SEKUNDEN);
// Zu starten softwaretestingmaterial.com
Treiber.erhalten(„https://www.softwaretestingmaterial.com“);
// Warten Sie 5 Sekunden
Thread.schlafen(5000);
//Verwendete tagName-Methode, um die Liste der Elemente mit tagName „a“ zu sammeln
//findElements – um alle Elemente mit auf der aktuellen Seite zu finden. Es gibt eine Liste aller webelemente oder eine leere Liste zurück, wenn nichts mit
List<WebElement> links = driver übereinstimmt.findElements(Durch.tagName(„a“));
// So drucken Sie die Gesamtzahl der Links
System.aus.println(„Insgesamt Links sind „+ Links.größe());
// verwendet für Schleife zu
für(int i=0; i<).größe(); i++) {
WebElement element = links.erhalten (i);
//Mit dem Attribut „href“ können wir die URL des angeforderten Links
String url=element .getAttribute(„href“);
// aufruf der verifyLink () -Methode hier. Übergeben des Parameters als URL, den wir im obigen Link gesammelt haben
//Siehe die detaillierte Funktionalität der verifyLink (url) -Methode unten
verifyLink(url);
}
}
// Die folgende Funktion verifyLink (String urlLink) überprüft alle defekten Links und gibt den Serverstatus zurück.
öffentlicher statischer void verifyLink(String urlLink) {
// Manchmal kann die Ausnahme „java.net.MalformedURLException“ auftreten. Behalten Sie den Code im try catch-Block bei, um die Analyse defekter Links fortzusetzen
try {
//Verwenden Sie die URL-Klasse – Erstellen Sie ein Objekt der URL-Klasse und übergeben Sie den urlLink als Parameter
URL link =);
// Erstellen Sie eine Verbindung mit dem URL-Objekt (dh link)
HttpURLConnection httpConn =(HttpURLConnection)link .openConnection();
// Setzen Sie das Timeout auf 2 Sekunden
httpConn.setConnectTimeout(2000);
// verbinden Sie sich mit der Verbindungsmethode
httpConn.verbinden();
// verwenden Sie getResponseCode() , um den Antwortcode abzurufen.
wenn(httpConn.getResponseCode()== 200) {
System.aus.println(urlLink+“ – „+httpConn.E-MAIL senden());
}
wenn(httpConn.getResponseCode()== 404) {
System.aus.println(urlLink+“ – „+httpConn.E-MAIL senden());
}
}
// getResponseCode Methode returns = IOException – wenn ein Fehler beim Verbinden mit dem Server aufgetreten ist.
Fang (Ausnahme e) {
// e.printStackTrace();
}
}
}
|
Wenn dieser Beitrag zum Thema „Finden defekter Links mit Selenium WebDriver“ helfen konnte, macht es Ihnen nichts aus, ihn mit anderen zu teilen.
Wenn Sie kein regelmäßiger Leser von SoftwareTestingMaterial.com dann empfehle ich Ihnen dringend, sich über den folgenden Link für den kostenlosen E-Mail-Newsletter anzumelden.