Plusieurs fois, nous sommes confrontés à des liens hypertextes brisés sur des sites Web. Aujourd’hui, nous apprenons à trouver des liens brisés en utilisant le sélénium. Avant d’aborder ces sujets, apprenons les questions fondamentales.
Que sont les Liens brisés?
Un lien cassé (alias lien mort ou pourriture de lien) est un lien sur un site Web qui ne fonctionne pas (ie., il ne redirige pas vers la page à laquelle il est destiné) pour une ou plusieurs des raisons suivantes.
- La page web de destination n’est plus disponible (hors ligne ou déplacée de manière permanente).
- La page Web de destination a été déplacée sans qu’une redirection ne soit ajoutée.
- La structure d’URL (permaliens) d’une page Web est modifiée.
- Une URL non valide (mal orthographiée, mal typée, etc.) est mentionné dans la page web source.
- En raison d’un pare-feu ou d’une restriction de géolocalisation.
Une URL qui a un code d’état HTTP 2xx est valide et les URL ont des codes d’état HTTP 4xx et 5xx ne sont pas valides. Si vous rencontrez le code d’état 4xx, cela est dû à une erreur côté client et le code d’état est 5xx, ce qui signifie qu’il est dû à une erreur de réponse du serveur.
Pourquoi vérifier les liens cassés ?Les serveurs Web
renvoient un message d’erreur lorsqu’un utilisateur tente d’accéder à un lien rompu. Les utilisateurs seront dirigés vers une page d’erreur lorsqu’ils cliqueront sur un lien rompu. Cela conduit à une mauvaise expérience utilisateur. Nous devons les gérer en permanence et supprimer tous les liens brisés existants sur notre site Web. Nous pouvons faire ce processus manuellement. La plupart des sites Web ont des centaines ou des milliers de liens et les tester tous manuellement n’est pas possible. Cela demande énormément de temps, de ressources et d’efforts. Au lieu d’inspecter manuellement, nous pouvons utiliser Selenium WebDriver pour tester les liens brisés.
À ne pas manquer: Tests manuels vs Tests d’automatisation – Différences Que Tout le monde devrait savoir
Comment vérifier les liens et images brisés
Suivez les étapes ci-dessous pour vérifier les liens brisés.
- Tous les liens sont étiquetés avec un lien < a > ou une image < img > sur une page Web. Collectez les liens en fonction des balises < a >, < img >
- Envoyez une requête HTTP et lisez le code de réponse HTTP de chaque lien.
De cette façon, vous pouvez savoir si le lien est valide ou non valide en fonction des codes de réponse.
Trouver des liens brisés à l’aide de Selenium WebDriver
L’un des cas de test clés consiste à trouver des liens brisés sur une page Web. En raison de l’existence de liens brisés, la réputation de votre site Web est endommagée et il y aura un impact négatif sur votre entreprise. Il est obligatoire de trouver et de réparer tous les liens rompus avant la sortie. Si un lien ne fonctionne pas, nous sommes confrontés à un message comme Page 404 Introuvable.
Voyons quelques-uns des codes d’état HTTP.
Le code ci-dessous récupère tous les liens d’un site Web donné (c’est-à-dire, matériel de destination de logiciels.com) en utilisant les commandes WebDriver et lit l’état de chaque lien href à l’aide de la classe HttpURLConnection.
Cliquez ici pour plus d’informations sur HttpURLConnection
Donné une explication claire dans la section des commentaires au sein du programme lui-même. Veuillez le parcourir pour comprendre le flux.
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
|
matériel logiciel de package ;
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:\\ Environnement sélénium \\ Pilotes \\ geckodriver.exe »);
Pilote WebDriver = nouveau pilote FirefoxDriver();
// Maximisez le pilote du navigateur
.gérer().fenêtre().maximiser();
// Attente implicite pendant 10 secondes
pilote.gérer().timeouts().implicitlyWait (10, unité de temps.SECONDES);
// Pour lancer softwaretestingmaterial.com
pilote.obtenir(« https://www.softwaretestingmaterial.com »);
// Attendez 5 secondes
Thread.sommeil (5000);
// Méthode tagName utilisée pour collecter la liste des éléments avec tagName « a »
// findElements – pour trouver tous les éléments avec dans la page en cours. Il renvoie une liste de tous les éléments web ou une liste vide si rien ne correspond à
List < WebElement > links=driver.findÉléments (Par.tagName (« a »));
// Pour imprimer le nombre total de liens
Système.hors.println(« Total des liens sont » + liens.taille());
// utilisé pour la boucle à
pour (int i = 0; i < liens.si vous avez besoin d’un élément WebElement, vous pouvez le faire.obtenir (i);
// En utilisant l’attribut « href », nous pourrions obtenir l’url du lien requis
String url= element.Obtenir des contributions (« href »);
// appeler la méthode verifyLink() ici. Passer le paramètre comme url que nous avons collecté dans le lien ci-dessus
// Voir la fonctionnalité détaillée de la méthode verifyLink(url) ci-dessous
verifyLink(url);
}
}
// La fonction verifyLink (String urlLink) ci-dessous vérifie tous les liens rompus et renvoie l’état du serveur.
verifyLink vide statique public (lien url de chaîne) {
// Parfois, nous pouvons faire face à l’exception « java.net.MalformedURLException ». Conservez le code dans le bloc try catch pour continuer l’analyse du lien cassé
try {
// Utilisez la classe URL – Créez un objet de la classe URL et passez l’urlLink en paramètre
URL link = new URL (urlLink);
// Créez une connexion en utilisant un objet URL (c’est-à-dire un lien)
HttpURLConnection httpConn=(HttpURLConnection) link.Connexion ouverte();
// Définissez le délai d’attente pour 2 secondes
httpConn.setConnectTimeout(2000);
// connectez-vous en utilisant la méthode de connexion
httpConn.se connecter();
// utilisez getResponseCode() pour obtenir le code de réponse.
if(httpConn.getResponseCode()== 200) {
Système.hors.println(urlLink + »- » + httpConn.getResponseMessage());
}
si (httpConn.getResponseCode()== 404) {
Système.hors.println(urlLink + »- » + httpConn.getResponseMessage());
}
}
// La méthode getResponseCode renvoie = IOException – si une erreur s’est produite lors de la connexion au serveur.
capture (exception e) {
// e. printStackTrace();
}
}
}
|
Si ce post sur « Trouver des liens brisés à l’aide de Selenium WebDriver » a pu vous aider, cela ne vous dérange pas de le partager avec d’autres.
Si vous n’êtes pas un lecteur régulier de SoftwareTestingMaterial.com ensuite, je vous recommande fortement de vous inscrire à la newsletter gratuite par e-mail en utilisant le lien ci-dessous.