hogyan lehet megtalálni a törött linkeket a Selenium-ban
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
- a weboldalon található összes hivatkozás összegyűjtése a <a> címke
- HTTP-kérés küldése minden egyes hivatkozáshoz
- a HTTP-válaszkód ellenőrzése
- a HTTP-válasz alapján határozza meg, hogy a hivatkozás érvényes vagy megszakadt-e kód
- 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.