Sådan Finder Du Brudte Links Ved Hjælp Af Selen-Chauffør?

hvilke tanker kommer til at tænke på, når du støder på 404/side ikke fundet/døde Hyperlinks på en hjemmeside? Aargh! Du vil finde det irriterende, når du støder på ødelagte hyperlinks, hvilket er den eneste grund til, at du løbende skal fokusere på at fjerne eksistensen af ødelagte links i dit internetprodukt (eller hjemmeside). I stedet for en manuel inspektion kan du udnytte automatisering til brudt linkprøvning ved hjælp af selen.

Broken

kilde

når et bestemt link er brudt, og en besøgende lander på siden, påvirker det sidens funktionalitet og resulterer i en dårlig brugeroplevelse. Døde links kan skade dit produkts troværdighed, da det ‘måske’ giver et indtryk til dine besøgende, at der er et minimalt fokus på oplevelsen.

hvis dit produkt har mange sider (eller links), der resulterer i en 404-fejl (eller side ikke fundet), vil produktrangeringen på søgemaskiner (f.eks. Fjernelse af døde links er en af de integrerede dele af SEO (Søgemaskineoptimering) aktivitet.

i denne del af selen driver tutorial serien dykker vi dybt ind i at finde brudte links ved hjælp af selen driver. Vi har demonstreret brudt link test ved hjælp af selen Python, selen Java, selen C# og selen PHP.

Introduktion til brudte Links i test

i enkle vendinger, brudte links (eller døde links) i en hjemmeside (eller internet app) er links, der ikke kan nås og fungerer ikke som forventet. Linkene kan midlertidigt være nede på grund af serverproblemer eller forkert konfigureret i bagenden.

404 - side ikke fundet

kilde

bortset fra sider, der resulterer i 404-fejl, er andre fremtrædende eksempler på ødelagte links misdannede URL ‘ er, links til indhold (f.eks.) som er blevet flyttet eller slettet.

fremtrædende årsager til ødelagte Links

her er nogle af de almindelige årsager bag forekomsten af ødelagte links (døde links eller linkrot):

  • forkert eller forkert stavet URL indtastet af brugeren.
  • strukturelle ændringer på hjemmesiden (dvs.permalinks) med URL-omdirigeringer eller interne omdirigeringer er ikke konfigureret korrekt.
  • Links til indhold som videoer, dokumenter osv. det er enten flyttet eller slettet. Hvis indholdet flyttes, skal de’ interne links ‘ omdirigeres til de udpegede links.
  • midlertidig nedetid på hjemmesiden på grund af vedligeholdelse af hjemmesiden, hvilket gør hjemmesiden midlertidigt utilgængelig.
  • ødelagte HTML-tags, JavaScript-fejl, forkerte HTML/CSS-tilpasninger, ødelagte indlejrede elementer osv., inden for siden førende, kan føre til brudte links.
  • geolokaliseringsbegrænsninger forhindrer adgang til hjemmesiden fra bestemte IP-adresser (hvis de er sortlistet) eller specifikke lande i verden. Geolokaliseringstest med selen hjælper med at sikre, at oplevelsen er skræddersyet til det sted (eller land), hvorfra stedet er tilgængeligt.

hvorfor skal du kontrollere brudte Links?

Broken links er en stor turn-off for de besøgende, der lander på din hjemmeside. Her er nogle af de vigtigste grunde til, at du bør tjekke for brudte links på din hjemmeside:

  • ødelagte Links kan skade brugeroplevelsen.
  • fjernelse af ødelagte (eller døde) links er afgørende for SEO (Søgemaskineoptimering), da det kan påvirke stedets placering på søgemaskiner (f.eks.

test af brudte links kan udføres ved hjælp af selen-driver på en hjemmeside, som igen kan bruges til at fjerne stedets døde links.

brudte Links og HTTP-statuskoder

når en bruger besøger en hjemmeside, sendes en anmodning til hjemmesidens server. Serveren reagerer på bro.sererens anmodning med en trecifret kode kaldet ‘HTTP-statuskode.’

en HTTP-statuskode er serverens svar på en anmodning sendt fra internetsøgeren. Disse HTTP-statuskoder betragtes som ækvivalente med samtalen mellem BRO.ser (hvorfra URL-anmodning sendes) og serveren.

selvom forskellige HTTP-statuskoder bruges til forskellige formål, er de fleste af koderne nyttige til diagnosticering af problemer på stedet, minimering af nedetid på stedet, antallet af døde links og mere. Det første ciffer i hver trecifret statuskode begynder med tal 1~5. Statuskoderne er repræsenteret som 1h, 2H.., 5% for at angive statuskoderne i det pågældende område. Da hvert af disse intervaller består af en anden klasse af serverrespons, ville vi begrænse diskussionen til HTTP-statuskoder præsenteret for ødelagte links.

her er de fælles statuskodeklasser, der er nyttige til at detektere brudte forbindelser med selen:

klasser af HTTP-statuskode beskrivelse
1 serveren tænker stadig gennem anmodningen.
2 den anmodning, der blev sendt af serveren, blev gennemført, og det forventede svar blev sendt til serveren.
3 dette indikerer, at en omdirigering udføres. For eksempel er 301 redirect populært bruges til at gennemføre permanente omdirigeringer på en hjemmeside.
4 dette indikerer, at enten en bestemt side (eller komplet side) ikke kan nås.
5 dette indikerer, at serveren ikke var i stand til at fuldføre anmodningen, selvom en gyldig anmodning blev sendt af bro.sereren.

HTTP-statuskoder præsenteret ved detektering af brudte Links

her er nogle af de almindelige HTTP-statuskoder, der præsenteres af internetserveren, når de støder på et brudt link:

HTTP-statuskode beskrivelse
400 (dårlig anmodning) serveren kan ikke behandle anmodningen, da den nævnte URL er forkert.
400 (dårlig anmodning-dårlig vært) dette indikerer, at værtsnavnet er ugyldigt, hvorfor anmodningen ikke kan behandles.
400 (dårlig anmodning-dårlig URL) dette indikerer, at serveren ikke kan behandle anmodningen, da den indtastede URL er misdannet (dvs.manglende parenteser, skråstreger osv.).
400 (dårlig anmodning-Timeout) dette indikerer, at HTTP-anmodningerne er udløbet.
400 (dårlig anmodning-Tom) svaret, der returneres af serveren, er tomt uden indhold og ingen svarkode.
400 (dårlig anmodning-Nulstil) dette indikerer, at serveren ikke er i stand til at behandle anmodningen, da den er optaget af at behandle andre anmodninger, eller den er blevet fejlkonfigureret af ejeren af siden.
403 (Forbudt) en ægte anmodning sendes til serveren, men den nægter at opfylde det samme, da der kræves tilladelse.
404 (side ikke fundet) ressourcen (eller siden) er ikke tilgængelig på serveren.
408 (anmodning Time Out) serveren har timeout venter på anmodningen. Klienten (dvs.bro. ser) kan sende den samme anmodning inden for den tid, serveren er parat til at vente.
410 (Gone) en HTTP-statuskode, der er mere permanent end 404 (siden blev ikke fundet). 410 betyder, at siden er væk.
siden er hverken tilgængelig på serveren, og der er ikke oprettet nogen mekanisme til videresendelse (eller omdirigering). Linkene, der peger på en 410-side, sender besøgende til en død ressource.
503 (Service utilgængelig) dette indikerer, at serveren midlertidigt er overbelastet, hvorfor den ikke kan behandle anmodningen. Det kan også betyde, at vedligeholdelse udføres på serveren, hvilket angiver søgemaskinerne om stedets midlertidige nedetid.

Hvordan finder man brudte Links ved hjælp af selen-chauffør?

uanset hvilket sprog der anvendes med selen, forbliver de vejledende principper for brudt linkprøvning ved hjælp af selen de samme. Her er trinene til brudte links test ved hjælp af selen:

  1. brug tagget til at indsamle oplysninger om alle de links, der findes på hjemmesiden.
  2. Send en HTTP-anmodning for hvert link.
  3. bekræft den tilsvarende svarkode modtaget som svar på anmodningen sendt i det foregående trin.
  4. Bekræft, om linket er brudt eller ej, baseret på svarkoden sendt af serveren.
  5. Gentag trin (2-4) for hvert link, der findes på siden.

i denne Selendriver-tutorial vil vi demonstrere, hvordan man udfører brudt link-test ved hjælp af Selendriver i Python, Java, C# og PHP. Testene udføres på (krom 85.0 + vinduer 10) kombination, og udførelsen udføres på det skybaserede Selengitter leveret af LambdaTest.

for at komme i gang med LambdaTest skal du oprette en konto på platformen og notere brugernavnet & adgangsnøgle tilgængelig fra profilafsnittet på LambdaTest. De bro. ser kapaciteter genereres ved hjælp LambdaTest kapaciteter Generator.

her er testscenariet, der bruges til at finde brudte links på en hjemmeside ved hjælp af selen:

Testscenarie

  1. gå til LambdaTest Blog dvs. https://www.lambdatest.com/blog/ på Chrome 85.0
  2. Saml alle de links, der findes på siden
  3. Send HTTP-anmodning for hvert link
  4. Udskriv om linket er brudt eller ej på terminalen

det er vigtigt at bemærke, at den tid, der bruges til at teste brudte links ved hjælp af selen, afhænger af antallet af links, der findes på ‘hjemmesiden under Test.’Jo mere antallet af links på siden, jo mere tid vil blive brugt på at finde brudte links. For eksempel har LambdaTest et stort antal links (~150+); derfor kan processen med at finde brudte links tage lidt tid (CA.et par minutter).

test på selen Grid

kør dit TESTSCRIPT på selen GRID

2000+ bro.Netere og OS

gratis tilmelding

brudt Link test ved hjælp af selen Java

implementering

Kodegennemgang

1. Importer de nødvendige pakker

metoderne i HttpURLConnection-pakken bruges til at sende HTTP-anmodninger og fange HTTP-statuskoden (eller svaret).

metoderne i regeks.Mønsterpakke kontroller, om det tilsvarende link indeholder en e-mail-adresse eller telefonnummer ved hjælp af en specialiseret syntaks, der holdes i et mønster.

1
2

import java. net. HttpURLConnection;
import java.util.regeks.Mønster;

2. Saml linkene til stede på siden

linkene til stede på URL under test (dvs.LambdaTest Blog) er placeret ved hjælp af tagname i selen. Tagnavnet, der bruges til identifikation af elementet (eller linket), er ‘a’.

linkene er placeret i en liste for at gentage gennem listen for at kontrollere brudte links på siden.

1
liste<element > links = driver.findElements (af.tagName (“a”));

3. Iterere gennem URL ‘ erne

Iteratorobjektet bruges til looping gennem listen oprettet i Trin (2)

1
Iterator< element> link = links.iterator();

4. Identificer og bekræft URL ‘ erne

et stykke tid loop udføres indtil tiden Iterator (dvs.link) har ikke flere elementer at gentage. Den’ href ‘ af anker tag hentes, og det samme er gemt i URL-variablen.

1
2
3

mens (link .hasnæste())
{
url = link.næste().getAttribute (“href”);

spring over kontrol af linkene, hvis:

a. Linket er null eller tomt

1
2
3
4
5

hvis ((url = = null) / / (url.isEmpty()))
{
System.uden.println (“URL er enten ikke konfigureret til ankertag, eller den er tom”);
fortsæt;
}

b. Linket indeholder mailto eller telefonnummer

1
2
3
4
5

hvis ((url.startmed (mail_to) | / / (url.startmed(tlf)))
{
System.uden.println (“e-mail-adresse eller telefon fundet”);
fortsæt;
}

når du tjekker for LinkedIn-siden, er HTTP-statuskoden 999. En boolsk variabel (dvs., LinkedIn) er indstillet til sand for at indikere, at det ikke er et brudt link.

1
2
3
4
5

hvis (url.startmed (LinkedInPage))
{
System.uden.println (“URL starter med LinkedIn, forventet statuskode er 999”);
bLinkedIn = sandt;
}

5. Valider linkene gennem statuskoden

metoderne i HttpURLConnection-klassen giver mulighed for at sende HTTP-anmodninger og fange HTTP-statuskoden.

OPENCONNECTION-metoden for URL-klassen åbner forbindelsen til den angivne URL. Det returnerer en urlconnection-instans, der repræsenterer en forbindelse til det eksterne objekt, der henvises af URL ‘ en. Det er type-støbt til HttpURLConnection.

1
2
3
4
5
6
7

HttpURLConnection urlconnection = null;
……………………………………….
……………………………………….
……………………………………….
urlconnection = (HttpURLConnection) (ny URL (url).openConnection());
urlconnection.setanmodningsmetode (“hoved”);

setanmodningsmetoden i HttpURLConnection-klassen angiver metoden til URL-anmodning. Anmodningstypen er indstillet til hoved, så kun overskrifter returneres. På den anden side ville anmodningstype GET have returneret dokumentlegemet, hvilket ikke er påkrævet i dette særlige testscenarie.

connect-metoden i HttpURLConnection-klassen opretter forbindelsen til URL ‘ en og sender en HTTP-anmodning.

1
urlconnection.Opret forbindelse();

getResponseCode-metoden returnerer HTTP-statuskoden for den tidligere sendte anmodning.

1
responseCode = urlconnection.getResponseCode();

for HTTP-statuskode er 400 (eller mere), variablen, der indeholder brudte links, tæller (dvs.broken_links) øges; ellers øges variablen, der indeholder gyldige links (dvs. valid_links).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

hvis (responseCode >= 400)
{
hvis ((bLinkedIn == true) & & (responseCode = = LinkedInStatus))
{
System.uden.println (url + “er en LinkedIn-side og er ikke et brudt link”);
valid_links++;
}
else
{
System.uden.println (url + “er et brudt link”);
broken_links++;
}
}
else
{
System.uden.println (url + “er et gyldigt link”);
valid_links++;
}

udførelse

for brudte links test ved hjælp af selen Java, skabte vi et projekt i IntelliJ IDEA. Den grundlæggende pom.det var nok til jobbet!

her er eksekverings snapshot, som angiver 169 gyldige links og 0 brudte links på LambdaTest blogsiden.

selen Java Test udførelse

linkene indeholdende E-mail-adresser og telefonnumre blev udelukket fra søgelisten, som vist nedenfor.

udførelse af Automatiseringstest

du kan se, at testen køres i nedenstående skærmbillede og afsluttes på 2 min 35 sekunder, som vist på Lambdatests automatiseringslogfiler.

LambdaTest automation logs

brudt Link test ved hjælp af selen Python

implementering

Kodegennemgang

1. Import moduler

bortset fra at importere Python moduler til selen driver, importerer vi også anmodningsmodulet. Anmodningsmodulet giver dig mulighed for at sende alle slags HTTP-anmodninger. Det kan også bruges til at passere parametre i URL, sende brugerdefinerede overskrifter og meget mere.

1
2
3

importanmodninger
import urllib3
fra anmodninger.undtagelser import MissingSchema, InvalidSchema, InvalidURL

2. Saml de links, der findes på siden

de links, der findes på URL ‘ en under test (dvs.LambdaTest Blog), findes ved at lokalisere internetelementerne ved hjælp af CSS-vælgeren “a” – egenskaben.

1
links = driver.find_elements (af.CSS_SELECTOR, “a”)

da vi ønsker, at elementet skal kunne gentages, bruger vi find_elements-metoden (og ikke find_element-metoden).

3. Gentag gennem URL ‘ erne til validering

hovedmetoden i anmodningsmodulet bruges til at sende en HOVEDANMODNING til den angivne URL. Get_attribute-metoden bruges på hvert link til at få ‘href’ – attributten til ankertagget.

hovedmetoden bruges primært i scenarier, hvor kun status_code eller HTTP-overskrifter er påkrævet, og indholdet af filen (eller URL) ikke er nødvendigt. Hovedmetoden returnerer anmodninger.Svarobjekt, som også indeholder HTTP-statuskoden (dvs.anmodning.statuskode).

1
2
3
4

for link i links:
prøv:
anmodning = anmodninger.hoved (link.get_attribute (‘href’), data ={‘nøgle’:’værdi’})
Udskriv(“Status for” + link.get_attribute (‘href’) + ” er ” + str(anmodning.status_code))

det samme sæt operationer udføres iterativt, indtil alle de ‘links’, der findes på siden, er opbrugt.

4. Valider linkene gennem statuskoden

hvis HTTP-svarkoden for HTTP-anmodningen sendt i trin(3) er 404 (dvs.siden ikke fundet), betyder det, at linket er et brudt link. For links, der ikke er brudt, er HTTP-statuskoden 200.

1
2
3
4

hvis (anmodning .status_code == 404):
broken_links = (broken_links + 1)
else:
valid_links = (valid_links + 1)

5. Spring over irrelevante anmodninger

, når de anvendes på links, der ikke indeholder attributten ‘href’ (f.eks.), resulterer hovedmetoden i en undtagelse (dvs.MissingSchema, InvalidSchema).

1
2
3
4
5
6

except requests.exceptions.MissingSchema:
print(“Encountered MissingSchema Exception”)
except requests.exceptions.InvalidSchema:
print(“Encountered InvalidSchema Exception”)
except:
print (“stødt på en anden udførelse”)

disse undtagelser er fanget, og det samme er trykt på terminalen.

udførelse

vi har brugt PyUnit (eller unittest) her, standard testrammen i Python til brudte links test ved hjælp af selen. Kør følgende kommando på terminalen:

1
python Broken_Links.py

udførelsen vil tage omkring 2-3 minutter, da LambdaTest-blogsiden består af cirka 150+ links. Udførelsesskærmbilledet nedenfor viser, at siden har 169 gyldige links og nul brudte links.

du vil være vidne til InvalidSchema-undtagelsen eller MissingSchema-undtagelsen nogle steder, hvilket indikerer, at disse links springes over fra evalueringen.

ugyldig Skemaundtagelse

hovedanmodningen til LinkedIn (dvs.) resulterer i en HTTP-statuskode på 999. Som anført i denne tråd på Stackoverløb filtrerer LinkedIn anmodningerne baseret på brugeragenten, og anmodningen resulterede i ‘Adgang nægtet’ (dvs.999 som HTTP-statuskode).

HTTP-statuskode

vi verificerede, om LinkedIn-linket, der findes på LambdaTest-blogsiden, er brudt eller ej ved at køre den samme test på det lokale Selengitter, hvilket resulterede i HTTP/1.1 200 OK.

Broken Link test ved hjælp af selen C#

implementering

Kodegennemgang

NUnit-rammen bruges til automatiseringstest; vores tidligere blog om NUnit Test automation med selen C# kan hjælpe dig med at komme i gang med rammerne.

1. Inkluder HttpClient

HttpClient-navneområdet tilføjes til brug gennem brug af direktivet. HttpClient-klassen i C# giver en basisklasse til afsendelse af HTTP-anmodninger og modtagelse af HTTP-svaret fra en ressource, der er identificeret af URI.

Microsoft anbefaler, at du bruger System.Net.Http.HttpClient i stedet for System.Net.Httpbrek.

1
2

brug af System. Net. Http;
brug af System.Trådning.Opgaver;

2. Definer en async-metode, der returnerer en opgave

en async-testmetode defineres som at bruge GetAsync-metoden, der sender en GET-anmodning til den angivne URI som en asynkron handling.

1
2

offentlig Async opgave LT_Broken_Links_Test()
{

3. Saml de links, der findes på siden

for det første opretter vi en forekomst af HttpClient.

1
brug af var client = ny HttpClient ();

de links, der findes på URL ‘ en under test (dvs.LambdaTest Blog) indsamles ved at lokalisere internetelementerne ved TagName “a” – ejendommen.

1
var links = driver.FindElements (Af.TagName (“a”));

find_elements-metoden i selen bruges til at lokalisere linkene på siden, da den returnerer et array (eller en liste), der kan gentages for at verificere linkernes anvendelighed.

4. Gentag gennem URL ‘ erne til validering

linkene, der findes ved hjælp af find_elements-metoden, verificeres i en for loop.

1
2

foreach (var link i links)
{

vi filtrerer de links, der indeholder /E-mail-adresser/telefonnumre/LinkedIn-adresser. Links uden linktekst filtreres også ud.

1
2

hvis (!(link.Tekst.Indeholder (“E-mail”) | | link.Tekst.Indeholder (“https://www.linkedin.com”) | | link.Tekst = = “” / / link.Lig(null)))
{

GetAsync-metoden i HttpClient-klassen sender en GET-anmodning til den tilsvarende URI som en asynkron operation. Argumentet til GetAsync-metoden er værdien af ankerets ‘href’ – attribut indsamlet ved hjælp af GetAttribute-metoden.

evalueringen af async-metoden suspenderes af den ventende operatør indtil afslutningen af den asynkrone operation. Efter afslutningen af den asynkrone operation returnerer den ventende operatør HttpResponseMessage, der indeholder data og statuskode.

1
2
3

/* få URI * /
HttpResponseMessage svar = afventer klient.GetAsync (link.GetAttribute (“href”));
System.Konsol.Skriveline ($”URL: {link.GetAttribute (“href”)} status er :{svar.StatusCode}”);

5. Valider linkene gennem statuskoden

hvis HTTP-svarkoden (dvs.svar.StatusCode) for HTTP-anmodningen sendt i trin(4) er HttpStatusCode.OK (dvs. 200) betyder det, at anmodningen blev gennemført med succes.

1
2
3
4
5
6
7
8
9

System.Console.WriteLine($”URL: {link.GetAttribute(“href”)} status is :{response.StatusCode}”);
if (response.StatusCode == HttpStatusCode.OK)
{
valid_links++;
}
else
{
broken_links++;
}

NotSupportedException and ArgumentNullException exceptions are handled as a part of exception handling.

1
2
3
4
5
6
7
8

catch (Exception ex)
{
if ((ex is ArgumentNullException) ||
(ex is NotSupportedException))
{
System.Console.WriteLine(“Exception occured\n”);
}
}

udførelse

her er eksekverings snapshot, som viser, at testen blev udført med succes.

udførelse af test af selen

der er sket undtagelser for links til ‘del ikoner’, dvs.Facebook, Kvidre osv. Bortset fra disse links returnerer resten af linkene på LambdaTest-blogsiden HttpStatusCode.OK (dvs.200).

Http-statuskode

brudt Linkprøvning ved hjælp af selen PHP

implementering

Kodegennemgang

1. Læs sidekilden

file_get_contents-funktionen i PHP bruges til at læse sidens HTML-kilde i en strengvariabel (f.eks.

1
2

$test_url = “https://www.lambdatest.com/blog/”;
$html = file_get_contents ($test_url);

2. Instantiere DOMDocument-klassen

DOMDocument-klassen i PHP repræsenterer et helt HTML-dokument og fungerer som dokumenttræets rod.

1
$htmlDom = nyt DOMDocument;

3. Parse HTML på siden

funktionen DOMDocument::loadHTML() bruges til at analysere HTML-kilden, der er indeholdt i $html. Ved vellykket udførelse returnerer funktionen et DOMDocument-objekt.

1
@$htmlDom – > loadHTML ($html);

4. Uddrag linkene fra siden

de links, der findes på siden, udvindes ved hjælp af getElementsByTagName-metoden i DOMDocument-klassen. Elementerne (eller links) søges baseret på ‘a’ – tagget fra den parsede HTML-kilde.

funktionen getElementsByTagName returnerer en ny forekomst af DOMNodeList, som indeholder elementerne (eller linkene) i det lokale tagnavn (dvs. tag)

1
$links = $htmlDom – > getElementsByTagName (‘a’);

5. Gentag gennem URL ‘ erne til validering

Domnodelisten, som blev oprettet i Trin (4), krydses for at kontrollere gyldigheden af linkene.

1
2
3

foreach ($links som $link)
{
$linktekst = $ link – > nodeValue;

detaljerne i det tilsvarende link opnås ved hjælp af attributten’ href’. GetAttribute-metoden bruges til det samme.

1
$linkHref = $ link – > getAttribute (‘href’);

spring over kontrol af linkene, hvis:

a. linket er tomt

1
2
3
4

hvis (strlen (trim ($linkHref)) == 0)
{
fortsæt;
}

b. Linket er et hashtag eller et ankerlink

1
2
3
4

hvis ($linkHref == ‘#’)
{
fortsæt;
}

C. linket indeholder mailto eller addtoany (dvs.sociale delingsmuligheder).

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

function check_nonlinks($test_url, $ test_pattern)
{
hvis (preg_match ($test_pattern, $test_url) = = falsk)
{
returner falsk;
}
else
{
retur sandt;
}
}
offentlig funktion test_Broken_Links()
{
$pattern_1 = ‘ / \ baddtoany\b/’;
$pattern_2 = ‘/ \ bmailto\b/’;
…………………………………………………………..
…………………………………………………………..
…………………………………………………………..
hvis ((check_nonlinks ($linkHref, $pattern_1))||(check_nonlinks ($linkHref, $pattern_2)))
{
Udskriv (“\nAdd_To_Any eller e-mail stødt”);
fortsæt;
}
…………………………………………………………..
…………………………………………………………..
…………………………………………………………..
}

preg_match-funktionen bruger et regulært udtryk (regeks) til at udføre en sag-ufølsom søgning efter mailto og addtoany. De regulære udtryk for mailto & addtoany er henholdsvis ‘ /\bmailto\b /’ & ‘/\baddtoany \ b/’.

6. Valider HTTP-koden ved hjælp af cURL

vi bruger curl til at få oplysninger om status for det tilsvarende link. Det første trin er at initialisere en cURL-session med det’ link’, som validering skal udføres på. Metoden returnerer en krølleforekomst, der vil blive brugt i den sidste del af implementeringen.

1
$curl = curl_init ($linkHref);

curl_setopt-metoden bruges til at indstille Indstillinger på det givne cURL session-håndtag (dvs. $curl).

1
curl_setopt ($curl, CURLOPT_NOBODY, sand);

metoden kaldes for udførelse af den givne cURL session. Det vender tilbage sandt ved vellykket udførelse.

1
$resultat = Curl ($curl);

dette er den vigtigste del af logikken, der kontrollerer for brudte links på siden. Funktionen curl_getinfo, der tager cURL session-håndtaget (dvs. $curl) og CURLINFO_RESPONSE_CODE (dvs. CURLINFO_HTTP_CODE) bruges til at få oplysninger om den sidste overførsel. Det returnerer HTTP-statuskode som svar.

1
$statusCode = curl_getinfo ($curl, CURLINFO_HTTP_CODE);

efter en vellykket afslutning af anmodningen returneres HTTP-statuskode på 200, og variablen, der holder antallet af gyldige links (dvs. $valid_links), øges. For links, der resulterer i HTTP-statuskoden på 400 (eller mere), udføres en kontrol, hvis ‘linket under test’ var Lambdatests LinkedIn-side. Som tidligere nævnt vil LinkedIn-sidens statuskode være 999; derfor øges $valid_links.

for alle de andre links, der returnerede HTTP-statuskode på 400 (eller mere), øges variablen, der holder antallet af brudte links (dvs. $broken_links).

1
2
3
4
5
6
7
8
9
10

hvis (($linkedin_page_status) & & ($statusCode == 999))
{
Udskriv (“\nLink”. $ linkHref . “er LinkedIn side og status er”.$statusCode);
$validlinks++;
}
else
{
Udskriv (“\nLink”. $ linkHref . “er brudt link og status er”.$statusCode);
$ brokenlinks++;
}

udførelse

vi bruger PHPUnit-rammen til test for ødelagte links på siden. For at hente PHPUnit-rammen skal du tilføje filkomponisten.json i rodmappen og køre komponist kræver på terminalen.

Kør følgende kommando på terminalen for at kontrollere brudte links i selen PHP.

1
leverandør \ bin \ phpunit tests \ BrokenLinksTest.php

her er eksekverings snapshot, der viser i alt 116 gyldige links og 0 brudte links på LambdaTest-bloggen. Da links til social deling (dvs.addtoany) og e-mail-adresse ignoreres, er det samlede antal 116 (169 i selen Python-testen).

eksekverings snapshot

konklusion

fast

kilde

ødelagte links, også kaldet døde links eller rådne links, kan hindre brugeroplevelsen, hvis de er til stede på hjemmesiden. Brudte links kan også påvirke placeringen på søgemaskiner. Derfor bør brudt link test udføres periodisk for aktiviteter relateret til Hjemmeside udvikling og test.

i stedet for at stole på tredjepartsværktøjer eller manuelle metoder til kontrol af brudte links på en hjemmeside, kan brudte links test udføres ved hjælp af selen-driver med Java, Python, C# eller PHP. HTTP-statuskoden, der returneres ved adgang til en hjemmeside, skal bruges til at kontrollere brudte links ved hjælp af Selenrammen.

Ofte Stillede Spørgsmål

Hvordan finder jeg brudte links i selen Python?

for at kontrollere de ødelagte links skal du samle alle linkene på hjemmesiden baseret på tagget. Send derefter en HTTP-anmodning om linkene, og læs HTTP-svarkoden. Find ud af, om linket er gyldigt eller brudt baseret på HTTP-svarkoden.

hvordan tjekker jeg for brudte links?

følg disse trin for løbende at overvåge din hjemmeside for brudte links ved hjælp af Google Search Console:

  1. Log ind på din Google Search Console-konto.
  2. Klik på det sted, du vil overvåge.
  3. Klik på gennemsøgning, og klik derefter på Hent som Google.
  4. når Google har gennemgået siden, skal du klikke på Gennemgå for at få adgang til resultaterne, og derefter klikke på Gennemsøgningsfejl.
  5. under URL-fejl kan du se eventuelle ødelagte links, som Google opdagede under gennemsøgningsprocessen.

Hvordan finder jeg ødelagte billeder på nettet ved hjælp af selen?

besøg siden. Gentag gennem hvert billede i HTTP-arkivet og se om det har en 404-statuskode. Gem hvert brudt billede i en samling. Kontroller, at samlingen ødelagte billeder er tom.

Hvordan får jeg alle links i selen?

du kan få alle links til stede på en hjemmeside baseret på< a > tag til stede. Hvert <a> tag repræsenterer et link. Brug selen locators til nemt at finde alle sådanne tags.

Hvorfor er brudte links dårlige?

de kan skade brugeroplevelsen – når brugere klikker på links og når blindgyde 404-fejl, bliver de frustrerede og vender måske aldrig tilbage. De devaluerer din SEO indsats – brudte links begrænse strømmen af link egenkapital i hele din hjemmeside, påvirker placeringer negativt.

Himanshu Sheth

Himanshu Sheth er en erfaren teknolog og blogger med mere end 15+ års forskelligartet arbejdserfaring. Han arbejder i øjeblikket som’ Lead Developer Evangelist ‘og’ Senior Manager ‘ hos LambdaTest. Han er meget aktiv med opstartssamfundet i Bengaluru (og sydpå) og elsker at interagere med lidenskabelige grundlæggere på sin personlige blog (som han har opretholdt siden sidste 15+ år).

skrevet af

Leave a Reply

Din e-mailadresse vil ikke blive publiceret.