február 6, 2022

hogyan lehet megtalálni a törött linkeket a Selenium-ban

Tartalomjegyzék

mielőtt megvitatnánk, hogyan lehet megtalálni a törött linkeket a Selenium WebDriver segítségével, Foglalkozzunk egy alapvető kérdéssel.

mik azok a törött linkek?

először is, a link egy HTML objektum, amely lehetővé teszi a felhasználók számára, hogy áttérjenek az egyik weboldalról a másikra, amikor rákattintanak. Ez egy eszköz az interneten található különböző weboldalak közötti navigáláshoz.

a megszakadt link, amelyet gyakran halott linknek is neveznek, nem működik, azaz. nem átirányítja a weboldal azt jelentette, hogy. Ez általában azért fordul elő, mert a webhely vagy az adott weboldal nem működik, vagy nem létezik. Ha valaki egy megszakadt linkre kattint, hibaüzenet jelenik meg.

hibás linkek létezhetnek valamilyen szerverhiba miatt, ami viszont a megfelelő oldal hibás működését okozza, és nem jelenik meg. Az érvényes URL-nek 2xx HTTP-állapotkódja lesz. A megszakadt linkek, amelyek lényegében érvénytelen HTTP-kérések, 4xx és 5xx állapotkódokkal rendelkeznek.

a 4xx állapotkód kliens oldali hibára utal, míg az 5xx állapotkód általában szerver válasz hibára mutat.

HTTP állapotkódok törött linkekhez

HTTP állapotkód meghatározás
400 ( a kiszolgáló nem tudja feldolgozni a kérést, mivel az URL nem megfelelő
400 (Bad Request-Bad Host) a kiszolgáló nem tudja feldolgozni a kérést gazdagépnévként érvénytelen
400 (rossz kérés-rossz URL): a kiszolgáló nem tudja feldolgozni a kérést, mivel az URL nem megfelelő formátumú; hiányzó karakterek, például zárójelek, perjel stb.
400 (Hibás kérés-üres) a szerver által visszaadott válasz üres tartalom nélkül & nincs válaszkód
400 (Hibás kérés-időtúllépés) a HTTP-kérések időtúlléptek
400 ( a kiszolgáló nem tudja feldolgozni a kérést, mivel más kérések feldolgozásával van elfoglalva, vagy a webhely tulajdonosa rosszul konfigurálta
404 (Az oldal nem található) az oldal nem érhető el a szerveren
403 (tiltott) szerver nem hajlandó teljesíteni a kérelem, mivel engedély szükséges
410 (elment) az oldal eltűnt. Ez a kód állandóbb, mint 404
408 (időtúllépés kérése) a szerver időtúllépéssel várja a kérést.
503 ( a kiszolgáló átmenetileg túlterhelt, és nem tudja feldolgozni a kérést

miért ellenőrizze a törött linkeket a szelénben?

ha egy felhasználó egy megszakadt linkre kattint, akkor egy hibaoldalra kerül. Ez nyilvánvalóan hozzájárul a Par-Par felhasználói élményhez. A megszakadt linkek elsősorban a weboldal létrehozásának célját szüntetik meg, mert a felhasználók nem találják meg a keresett információt vagy szolgáltatást.

a webhely minden linkjét tesztelni kell annak biztosítása érdekében, hogy a várt módon működjön. Mivel azonban a legtöbb webhely több száz (néha több ezer) linket tartalmaz ahhoz, hogy működjön, az egyes linkek kézi tesztelése túlzott időt, erőfeszítést és erőforrásokat igényel. Ráadásul, az automatizált szelén tesztelés opció, teljesen felesleges lenne.

Olvass Tovább: Hogyan készítsünk képernyőképeket a szelénben

a megszakadt linkek gyakori okai

  • 404 Az oldal nem található – a céloldalt a tulajdonos eltávolította
  • 400 Hibás kérés – a kiszolgáló nem tudja feldolgozni a link által kiváltott HTTP-kérést, mert a kért URL-cím hibás
  • a felhasználó tűzfalbeállításai miatt a böngésző nem fér hozzá a céloldalhoz
  • a hivatkozás hibásan van megírva

a Selenium WebDriver hibás linkjeinek azonosítása

a szelénben lévő törött linkek ellenőrzéséhez a folyamat egyszerű. Egy weboldalon a hiperhivatkozások a HTML Anchor (<a>) címkével vannak megvalósítva. A szkriptnek csak annyit kell tennie, hogy megkeresi az összes horgonycímkét egy weboldalon, megkapja a megfelelő URL-eket, és végigfuttatja a linkeket, hogy ellenőrizze, hogy valamelyik nem sérült-e.

a Selenium

  1. a weboldalon található összes hivatkozás összegyűjtése a <a> címke
  2. HTTP-kérés küldése minden egyes hivatkozáshoz
  3. a HTTP-válaszkód ellenőrzése
  4. a HTTP-válasz alapján határozza meg, hogy a hivatkozás érvényes vagy megszakadt-e kód
  5. ismételje meg a folyamatot az első lépéssel rögzített összes linknél

ha kíváncsi arra, hogyan találhat törött képeket a Selenium webdriver segítségével, használja ugyanazt a folyamatot.

Olvass Tovább: Hogyan kell végrehajtani a dupla kattintást a szelénben

törött linkek keresése a szelénben: példa

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();}}

futtassa a szelén teszteket valódi eszközökön ingyen

menjünk át a kódon, hogy jobban megértsük annak funkcionalitását.

1. Csomagok importálása

importálja az alábbi csomagot az alapértelmezett csomagokkal együtt:

import java.net.HttpURLConnection;

a csomag metódusai lehetővé teszik a tesztelő számára, hogy HTTP kéréseket küldjön és HTTP válaszkódokat rögzítsen, amikor azokat a kód visszaadja.

2. Gyűjtse össze az összes linket a weboldalon

keresse meg az összes linket a weboldalon, és helyezze el őket egy listába:

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

szerezze be az Iterátort a linkek listájának mozgatásához:

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

3: URL-ek azonosítása és érvényesítése

ez a lépés annak ellenőrzéséről szól, hogy egy adott URL egy harmadik fél domainjéhez tartozik-e, vagy üres/null.

az alábbi kód beolvassa a horgonycímke href-jét, és tárolja azt az URL változóban.

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

ha az URL null vagy üres, hagyja ki a következő lépéseket.

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

ha az URL a fő tartományhoz tartozik, folytassa. Ha harmadik fél domainjéhez tartozik, hagyja ki a lépéseket ezután.

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

4. HTTP kérés küldése

a HttpURLConnection osztály metódusai HTTP kéréseket küldenek és rögzítik a HTTP válaszkódot. Ezért az openConnection() metódus (URLConnection) kimenete a HttpURLConnection-be kerül.

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

ha a tesztelők a kérés típusát “Head” – ként állítják be a “GET” helyett, akkor csak a fejlécek kerülnek vissza, a dokumentum törzse nem.

huc.setRequestMethod("HEAD");

amikor a tesztelő meghívja a connect() metódust, létrejön a tényleges kapcsolat az URL-hez, és elküldi a HTTP kérést.

huc.connect();

5.

hivatkozások érvényesítése használja a getResponseCode () metódust a korábban elküldött HTTP-kérés HTTP-válaszkódjának lekéréséhez.

respCode = huc.getResponseCode();

ellenőrizze a link állapotát (törött vagy nem) a válaszkód alapján

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

a seleniumban a törött linkek megtalálása a weboldal fejlesztésének és tesztelésének szerves része. Az ebben a cikkben leírt módszer alkalmazásával a tesztelők gyorsan és helyesen azonosíthatják a hibásan működő linkeket. A megszakadt linkek gyártási szakaszba való bejutásának lehetővé tétele súlyosan károsítaná a felhasználói élményt, és ezt rendkívüli alapossággal meg kell akadályozni. Ezért a tesztelő eszközkészletének fontos része a törött linkek tesztelésének ismerete a szelénben.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.