februar 6, 2022

hvordan finne ødelagte koblinger I Selen

Innholdsfortegnelse

før vi diskuterer hvordan du finner ødelagte koblinger ved Hjelp Av Selen WebDriver, la oss ta opp et mer grunnleggende spørsmål.

Hva Er Ødelagte Koblinger?

til å begynne med er en lenke ET HTML-objekt som gjør det mulig for brukere å migrere fra en nettside til en annen når de klikker på den. Det er et middel til å navigere mellom ulike nettsider på internett.

en ødelagt lenke, også ofte kalt en død lenke, er en som ikke fungerer dvs. ikke omdirigere til websiden det er ment å. Dette skjer vanligvis fordi nettstedet eller en bestemt nettside er nede eller ikke eksisterer. Når noen klikker på en ødelagt kobling, vises en feilmelding.

Brutte koblinger kan eksistere på grunn av en slags serverfeil, noe som igjen fører til at den tilsvarende siden virker feil og ikke vises. En gyldig URL vil ha EN 2XX HTTP statuskode. Brutte koblinger, som i hovedsak er ugyldige HTTP-forespørsler, har 4xx og 5xx statuskoder.

4xx-statuskoden refererer til en feil på klientsiden, mens 5xx-statuskoden vanligvis peker på en serverresponsfeil.

HTTP Statuskoder For Ødelagte Koblinger

HTTP-Statuskode Definisjon
400 (Ugyldig Forespørsel) Server kan ikke behandle forespørsel som URL er feil
400 (Dårlig Forespørsel-Dårlig Vert) Server kan ikke behandle forespørsel som vertsnavn er ugyldig
400 (Dårlig Forespørsel-Dårlig URL): Server kan ikke behandle forespørsel DA NETTADRESSEN er av feil format; manglende tegn som parenteser, skråstreker, etc.
400 (Ugyldig Forespørsel-Tom) Svar returnert av serveren er tom uten innhold & ingen svarkode
400 (Dårlig Forespørsel-Timeout) HTTP-forespørsler er tidsavbrutt
400 (Ugyldig Forespørsel-Reset) Serveren kan ikke behandle forespørselen, da Den er opptatt med å behandle andre forespørsler eller har blitt feilkonfigurert av nettstedseier
404 (Page Not Found) Siden er ikke tilgjengelig på serveren
403 (Forbudt) Serveren nekter å oppfylle forespørsel som autorisasjon er nødvendig
410 (Borte) Siden er borte. Denne koden er mer permanent enn 404
408 (Forespørsel Tidsavbrudd) Serveren har tidsavbrudd venter på forespørselen.
503 (Tjenesten Er Utilgjengelig) Serveren er midlertidig overbelastet og kan ikke behandle forespørselen

Hvorfor se Etter Ødelagte Koblinger I Selen?

hvis en bruker klikker på en ødelagt lenke, blir de sendt til en feilside. Dette bidrar åpenbart til sub-par brukeropplevelse. Ødelagte koblinger beseire hensikten med å ha nettstedet i første omgang fordi brukerne ikke finner informasjonen eller tjenesten de leter etter.

hver lenke på et nettsted må testes for å sikre at den fungerer som forventet. Men gitt at de fleste nettsteder har hundrevis (noen ganger tusenvis) av koblinger som kreves for å få dem til å fungere, vil manuell testing av hver lenke kreve store mengder tid, krefter og ressurser. Videre, med automatisert Selentesting som et alternativ, ville det være helt unødvendig.

Les Mer: Hvordan Ta Skjermbilder I Selen

Vanlige Årsaker Til Ødelagte Lenker

  • 404 siden ble ikke funnet – destinasjonssiden har blitt fjernet av eieren
  • 400 Dårlig Forespørsel – serveren kan ikke behandle HTTP-forespørselen utløst av lenken fordi url-adressen som er forespurt er feil
  • på grunn av brukerens brannmurinnstillinger kan ikke nettleseren få tilgang til destinasjonssiden

slik identifiserer du ødelagte koblinger I Selenium WebDriver

for å sjekke ødelagte koblinger i selen, er prosessen enkel. På en nettside implementeres hyperkoblinger ved HJELP AV HTML-Ankeret (<a>). Alt skriptet trenger å gjøre er å finne hver anker tag på en nettside, få de tilsvarende Nettadresser, og kjøre gjennom linkene for å sjekke om noen av dem er brutt.

Bruk følgende trinn for å identifisere ødelagte koblinger I Selen

  1. Samle alle koblingene som finnes på en nettside basert på <a> – taggen
  2. Send HTTP-forespørsel for hver kobling
  3. Bekreft HTTP-svarkoden
  4. Bestem om koblingen er gyldig eller ødelagt basert PÅ HTTP-svaret kode
  5. gjenta prosessen for alle koblinger fanget Med Første Trinn

hvis du lurer på hvordan du finner ødelagte bilder ved hjelp av selenium webdriver, bruk samme prosess.

Les Mer: Slik Utfører Du Dobbeltklikk I Selen

Finne Ødelagte Koblinger I Selen: Eksempel

package automationPractice;import java.io.IOException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.Iterator;import java.util.List;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;public class BrokenLinks {private static WebDriver driver = null;public static void main(String args) {// TODO Auto-generated method stubString homePage = "http://www.zlti.com";String url = "";HttpURLConnection huc = null;int respCode = 200;driver = new ChromeDriver();driver.manage().window().maximize();driver.get(homePage);List<WebElement> links = driver.findElements(By.tagName("a"));Iterator<WebElement> it = links.iterator();while(it.hasNext()){url = it.next().getAttribute("href");System.out.println(url);if(url == null || url.isEmpty()){System.out.println("URL is either not configured for anchor tag or it is empty");continue;}if(!url.startsWith(homePage)){System.out.println("URL belongs to another domain, skipping it.");continue;}try {huc = (HttpURLConnection)(new URL(url).openConnection());huc.setRequestMethod("HEAD");huc.connect();respCode = huc.getResponseCode();if(respCode >= 400){System.out.println(url+" is a broken link");}else{System.out.println(url+" is a valid link");}} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}driver.quit();}}

Kjør Selentester På Ekte Enheter Gratis

La oss gå gjennom koden for en nærmere forståelse av funksjonaliteten.

1. Importer Pakker

Importer pakken nedenfor sammen med standardpakker:

import java.net.HttpURLConnection;

metodene i denne pakken tillater testeren å sende HTTP-forespørsler og fange HTTP-svarkoder når de returneres av koden.

2. Samle alle koblingene på nettsiden

Finn alle koblingene på nettsiden og plasser dem i en liste:

List<WebElement> links = driver.findElements(By.tagName("a"));

Få Iterator til å bevege seg gjennom listen over lenker:

Iterator<WebElement> it = links.iterator();

3: Identifiser Og Valider Url-Adresser

dette trinnet handler om å kontrollere om EN BESTEMT URL tilhører et tredjepartsdomene eller om DEN er tom/null.

koden nedenfor vil hente href av ankerkoden og lagre DEN i URL-variabelen.

url = it.next().getAttribute("href");

hvis NETTADRESSEN er null eller Tom, hopper du over trinnene etter dette.

if(url == null || url.isEmpty()){System.out.println("URL is either not configured for anchor tag or it is empty");continue;}

hvis NETTADRESSEN tilhører hoveddomenet, fortsetter du. Hvis det tilhører et tredjepartsdomene, hopper du over trinnene etter dette.

if(!url.startsWith(homePage)){System.out.println("URL belongs to another domain, skipping it.");continue;}

4. Send HTTP-forespørsel

Metoder i Klassen HttpURLConnection sender HTTP-forespørsler og fanger HTTP-svarkoden. Derfor er utdataene fra openconnection () – metoden (URLConnection) typen støpt Til HttpURLConnection.

huc = (HttpURLConnection)(new URL(url).openConnection());

hvis testere angir Forespørselstype som «HEAD» i stedet for «GET», returneres bare overskrifter, ikke dokumentteksten.

huc.setRequestMethod("HEAD");

når testeren påberoper connect () – metoden, opprettes den faktiske tilkoblingen TIL NETTADRESSEN og HTTP-forespørselen sendes.

huc.connect();

5. Valider Koblinger

Bruk getresponsecode () – metoden til å hente HTTP-svarkoden for DEN tidligere sendte HTTP-forespørselen.

respCode = huc.getResponseCode();

Sjekk lenkestatus (ødelagt eller ikke) basert på svarkoden

if(respCode >= 400){System.out.println(url+" is a broken link");}else{System.out.println(url+" is a valid link");}

Å Finne brutte lenker I Selen er en integrert del av utvikling og testing av nettsider. Ved å bruke metoden som er beskrevet i denne artikkelen, kan testere identifisere feilkoblinger raskt og riktig. Å tillate ødelagte koblinger å passere inn i produksjonsfasen vil skade brukeropplevelsen alvorlig, og må forebygges med ekstrem grundighet. Det er derfor å vite hvordan å teste ødelagte koblinger I Selen er en viktig del av en testerens verktøykasse.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.