Tekst poveznice i djelomični tekst poveznice u Selenium

⚡ Pametni sažetak

Tekst poveznice i djelomični tekst poveznice u Selenium locirajte hiperveze na web stranici putem njihovog sidrenog teksta. Metoda By.linkText() pronalazi točan tekst, dok By.partialLinkText() pronalazi dio teksta, a oba lokatora razlikuju velika i mala slova i vraćaju prvo podudaranje.

  • 🔗 Definirani tekst poveznice: Locira hiperveze na stranici prema njihovom vidljivom sidrenom tekstu.
  • 🎯 By.linkText(): Odgovara točnom tekstu poveznice i vraća prvo podudaranje.
  • 🔎 By.partialLinkText(): Odgovara dijelu teksta poveznice, a vraća i prvo podudaranje.
  • 🔠 Razlikuje velika i mala slova: Oba lokatora tretiraju velika slova kao značajna, pa se "egis" i "EGIS" razlikuju.
  • 🧱 Višestruke/blokovne poveznice: Za duplikate koristite xpath ili cssSelector; obje metode rade unutar ili izvan oznaka blokova.

Tekst poveznice i djelomični tekst poveznice u Selenium

U čemu je tekst veze Selenium?

A Link Tekst u Selenium koristi se za prepoznavanje hiperveza na web stranici. Određuje se uz pomoć sidrene oznake. Za stvaranje hiperveza na web stranici možemo koristiti oznaku sidra nakon koje slijedi poveznica Tekst.

Veze koje odgovaraju kriteriju

Vezama se može pristupiti pomoću točnog ili djelomičnog podudaranja teksta veze. Primjeri u nastavku daju scenarije u kojima bi postojalo više podudaranja i objasnili bi kako bi se WebDriver nosio s njima.

U ovom vodiču naučit ćemo dostupne metode za pronalaženje i pristup poveznicama pomoću Webdrivera. Također, razgovarat ćemo o nekim uobičajenim problemima s kojima se susrećemo prilikom pristupa Linkovima i dodatno ćemo raspravljati o tome kako ih riješiti.

Potpuni tekst veze u Selenium – By.linkText()

Pristup poveznicama pomoću njihovog točnog teksta veze vrši se metodom By.linkText().. Međutim, ako postoje dvije veze koje imaju isti tekst veze, ova će metoda pristupiti samo prvoj. Razmotrite HTML kôd u nastavku

Link Tekst u Selenium–By.LinkText()

Link Tekst u Selenium–By.LinkText()

Kada pokušate pokrenuti WebDriver kod u nastavku, pristupit ćete prvoj vezi "kliknite ovdje".

Link Tekst u Selenium–By.LinkText()

Code:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MyClass {

    public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/link.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.linkText("click here")).click();
        System.out.println("title of page is: " + driver.getTitle());
        driver.quit();
    }

}

Evo kako to funkcionira -

Link Tekst u Selenium–By.LinkText()

Kao rezultat toga, automatski ćete biti preusmjereni na Google.

Link Tekst u Selenium–By.LinkText()

Kompletan djelomični tekst veze u Selenium – Po.partialLinkText()

Pristup vezama pomoću dijela njihovog teksta veze vrši se pomoću By.partialLinkText() metoda. Ako navedete djelomični tekst veze koji ima više podudaranja, pristupit će se samo prvom podudaranju. Razmotrite HTML kôd u nastavku.

Djelomični unos teksta veze Selenium – Po.partialLinkText()

 Djelomični unos teksta veze Selenium – Po.partialLinkText()

Kada izvršite donji WebDriver kod, i dalje ćete biti preusmjereni na Google.

 Djelomični unos teksta veze Selenium – Po.partialLinkText()

Code:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class P1 {

    public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/accessing-link.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.partialLinkText("here")).click();
        System.out.println("Title of page is: " + driver.getTitle());
        driver.quit();
    }
}

Djelomični unos teksta veze Selenium – Po.partialLinkText()

Kako dobiti više poveznica s istim tekstom veze

Dakle, kako zaobići gornji problem? U slučajevima kada postoji više veza s istim tekstom veze, a mi želimo pristupiti vezama koje nisu prve, kako ćemo to učiniti?

U takvim slučajevima, općenito se koriste različiti lokatori, npr. By.xpath(), By.cssSelector() ili By.tagName().

Najčešće se koristi By.xpath(). Najpouzdaniji je, ali također izgleda složeno i nečitljivo.

Osjetljivost na velika i mala slova za tekst veze

Osjetljivost na velika i mala slova za tekst veze

Parametri za By.linkText() i By.partialLinkText() oba su osjetljiva na velika i mala slova, što znači da su velika i mala slova bitna. Na primjer, u Mercury Na početnoj stranici Toursa postoje dvije poveznice koje sadrže tekst “egis” – jedna je veza “REGISTRIRATI SE” koja se nalazi u gornjem izborniku, a druga je poveznica “Registrirajte se ovdje” koja se nalazi u donjem desnom dijelu stranice.

Osjetljivost na velika i mala slova za tekst veze

Iako obje poveznice sadrže niz znakova „egis“, metoda „By.partialLinkText()“ će pristupiti tim dvjema poveznicama zasebno, ovisno o velikim slovima. Pogledajte primjer koda u nastavku.

Osjetljivost na velika i mala slova za tekst veze

Code

public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/newtours/";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        String theLinkText = driver.findElement(By
                .partialLinkText("egis"))
                .getText();
        System.out.println(theLinkText);
        theLinkText = driver.findElement(By
                .partialLinkText("EGIS"))
                .getText();
        System.out.println(theLinkText);

        driver.quit();

    }

Linkovi izvan i unutar bloka

Najnoviji HTML5 standard omogućuje postavljanje oznaka unutar i izvan oznaka na razini bloka kao što su , ili . Metode “By.linkText()” i “By.partialLinkText()” mogu pristupiti vezi koja se nalazi izvan i unutar ovih elemenata na razini bloka. Razmotrite HTML kôd u nastavku.

Linkovi izvan i unutar bloka

Linkovi izvan i unutar bloka

WebDriver kod u nastavku pristupa objema ovim poveznicama pomoću metode By.partialLinkText().

Linkovi izvan i unutar bloka

Code:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MyClass {

    public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/block.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.partialLinkText("Inside")).click();
        System.out.println(driver.getTitle());
        driver.navigate().back();
        driver.findElement(By.partialLinkText("Outside")).click();
        System.out.println(driver.getTitle());
        driver.quit();
    }
}

Gornji rezultat potvrđuje da je objema vezama uspješno pristupljeno jer su naslovi njihovih stranica ispravno dohvaćeni.

Pitanja i odgovori

By.linkText() pronalazi potpuni, točni vidljivi tekst poveznice, dok By.partialLinkText() pronalazi bilo koju poveznicu koja sadrži zadani podniz. Oba vraćaju samo prvu odgovarajuću poveznicu kada se kvalificira nekoliko poveznica.

Da. I By.linkText() i By.partialLinkText() razlikuju velika i mala slova, pa je važno koristiti velika i mala slova. Tekst "egis" i "EGIS" tretiraju se kao različite vrijednosti i mogu odgovarati različitim poveznicama na istoj stranici.

Budući da lokatori teksta poveznica vraćaju samo prvo podudaranje, upotrijebite By.xpath() ili By.cssSelector() za ciljanje određene poveznice ili upotrijebite findElements() s By.tagName("a") za prikupljanje svih poveznica i odabir one koja vam je potrebna.

AI alati analiziraju DOM i rangiraju atribute prema stabilnosti kako bi predložili robusne XPath ili CSS selektore. Oni favoriziraju jedinstvene, manje krhke identifikatore, smanjujući kvarove uzrokovane manjim promjenama korisničkog sučelja tijekom izvođenja testa.

Da. Okviri za samoobnavljanje testiranja koriste umjetnu inteligenciju za otkrivanje kada lokator ne uspije, zatim ocjenjuju obližnje elemente prema sličnosti i automatski prelaze na najbliže podudaranje, keeping testovi se izvode s manje ručnog održavanja.

Sažmite ovu objavu uz: