Lingi tekst ja osaline lingi tekst Selenium

โšก Nutikas kokkuvรตte

Lingi tekst ja osaline lingi tekst Selenium Leidke veebilehelt hรผperlinke nende ankruteksti kaudu. Meetod By.linkText() leiab tรคpse teksti, samas kui By.partialLinkText() leiab osa tekstist ning mรตlemad lokaatorid on tรตstutundlikud ja tagastavad esimese vaste.

  • ๐Ÿ”— Lingi teksti mรครคratlus: Leiab lehel olevad hรผperlingid nende nรคhtava ankruteksti jรคrgi.
  • ๐ŸŽฏ Autor.linkText(): Vastab tรคpselt lingi tekstile ja tagastab esimese vaste.
  • ๐Ÿ”Ž PartialLinkText(): Vastab lingi teksti osale, tagastades ka esimese vaste.
  • ๐Ÿ”  Suur- ja vรคiketรคhtede tundlik: Mรตlemad lokaatorid kรคsitlevad suurtรคhtede kasutamist olulisena, seega erinevad โ€žegisโ€ ja โ€žEGISโ€.
  • ๐Ÿงฑ Mitmed/blokeeritud lingid: Duplikaatide jaoks kasutage xpath'i vรตi cssSelectorit; mรตlemad meetodid tรถรถtavad nii plokisiltide sees kui ka vรคljaspool.

Lingi tekst ja osaline lingi tekst Selenium

Mis on lingi tekst Selenium?

A Link tekst sisse Selenium kasutatakse veebilehel olevate hรผperlinkide tuvastamiseks. See mรครคratakse ankrusildi abil. Hรผperlinkide loomiseks veebilehel saame kasutada ankurmรคrgendit, millele jรคrgneb link Tekst.

Kriteeriumile vastavad lingid

Linkidele pรครคseb juurde, kasutades nende lingi teksti tรคpset vรตi osalist vastet. Allolevad nรคited pakuvad stsenaariume, kus oleks mitu vastet, ja selgitavad, kuidas WebDriver nendega tegeleb.

Selles รตpetuses รตpime saadaolevaid meetodeid veebidraiveri abil linkide leidmiseks ja neile juurde pรครคsemiseks. Samuti kรคsitleme mรตningaid levinumaid probleeme, millega linkidele juurdepรครคsul kokku puutute, ja arutame edasi, kuidas neid lahendada.

Tรคitke lingi tekst Selenium โ€“ By.linkText()

Juurdepรครคs linkidele nende tรคpse lingiteksti abil toimub meetodi By.linkText() kaudu. Kui aga on kaks linki, millel on sama lingi tekst, pรครคseb see meetod juurde ainult esimesele. Mรตelge allolevale HTML-koodile

Lingi tekst sisse Seleniumโ€“By.LinkText()

Lingi tekst sisse Seleniumโ€“By.LinkText()

Kui proovite allolevat WebDriveri koodi kรคivitada, pรครคsete juurde esimesele lingile "klรตpsake siin".

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

}

Siin on, kuidas see tรถรถtab -

Lingi tekst sisse Seleniumโ€“By.LinkText()

Selle tulemusel suunatakse teid automaatselt lehele Google.

Lingi tekst sisse Seleniumโ€“By.LinkText()

Tรคitke osaline lingi tekst Selenium โ€“ By.partialLinkText()

Juurdepรครคs linkidele, kasutades osa nende lingi tekstist, toimub kasutades By.partialLinkText() meetod. Kui mรครคrate osalise lingi teksti, millel on mitu vastet, pรครคseb juurde ainult esimesele vastele. Mรตelge allolevale HTML-koodile.

Osaline lingi tekst sisse Selenium โ€“ By.partialLinkText()

 Osaline lingi tekst sisse Selenium โ€“ By.partialLinkText()

Alloleva WebDriveri koodi kรคivitamisel suunatakse teid ikkagi Google.

 Osaline lingi tekst sisse Selenium โ€“ By.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();
    }
}

Osaline lingi tekst sisse Selenium โ€“ By.partialLinkText()

Kuidas hankida mitu linki sama lingitekstiga

Niisiis, kuidas รผlaltoodud probleemist mรถรถda saada? Kui sama lingitekstiga on mitu linki ja me tahame juurde pรครคseda muudele linkidele peale esimese, kuidas seda teha?

Sellistel juhtudel kasutatakse รผldiselt erinevaid lokaatoreid, nimeltโ€ฆ By.xpath(), By.cssSelector() vรตi By.tagName().

Kรตige sagedamini kasutatav on By.xpath(). See on kรตige usaldusvรครคrsem, kuid tundub ka keeruline ja mitteloetav.

Lingi teksti tรตstutundlikkus

Lingi teksti tรตstutundlikkus

Parameetrid jaoks By.linkText() ja By.partialLinkText() on mรตlemad tรตstutundlikud, mis tรคhendab, et suurtรคhtede kasutamine on oluline. Nรคiteks sisse Mercury Toursi kodulehel on kaks linki, mis sisaldavad teksti โ€œegisโ€ โ€“ รผks on รผlamenรผรผs olev link โ€œREGISTREERUโ€ ja teine โ€‹โ€‹lehe paremas alanurgas olev link โ€œRegistreeri siinโ€.

Lingi teksti tรตstutundlikkus

Kuigi mรตlemad lingid sisaldavad mรคrgijada โ€žegisโ€œ, pรครคseb meetod โ€žBy.partialLinkText()โ€œ neile kahele lingile eraldi juurde, olenevalt tรคhtede suurtรคhtede kasutamisest. Vaadake allolevat nรคidiskoodi.

Lingi teksti tรตstutundlikkus

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

    }

Lingid plokist vรคljas ja sees

Uusim HTML5-standard lubab silte paigutada plokitasemel siltide (nt , , vรตi ) sisse ja vรคljapoole. Meetodid "By.linkText()" ja "By.partialLinkText()" pรครคsevad juurde lingile, mis asub nendest plokitaseme elementidest vรคljaspool ja sees. Mรตelge allolevale HTML-koodile.

Lingid plokist vรคljas ja sees

Lingid plokist vรคljas ja sees

Allolev WebDriveri kood pรครคseb mรตlemale lingile, kasutades meetodit By.partialLinkText().

Lingid plokist vรคljas ja sees

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

รœlaltoodud vรคljund kinnitab, et mรตlemale lingile pรครคseti edukalt juurde, kuna nende vastavad lehepealkirjad leiti รตigesti.

KKK

By.linkText() leiab vaste lingi tรคielikule ja tรคpsele nรคhtavale tekstile, samas kui By.partialLinkText() leiab vaste mis tahes lingile, mis sisaldab antud alamstringi. Mรตlemad tagastavad ainult esimese sobiva lingi, kui kvalifitseerub mitu linki.

Jah. Nii By.linkText() kui ka By.partialLinkText() on tรตstutundlikud, seega on suurtรคhtede kasutamine oluline. Teksti โ€žegisโ€ ja โ€žEGISโ€ kรคsitletakse erinevate vรครคrtustena ja need vรตivad vastata samal lehel olevatele erinevatele linkidele.

Kuna lingiteksti lokaatorid tagastavad ainult esimese vaste, kasutage konkreetse lingi sihtimiseks funktsiooni By.xpath() vรตi By.cssSelector() vรตi kasutage kรตigi linkide kogumiseks ja vajaliku valimiseks funktsiooni findElements() koos funktsiooniga By.tagName(โ€œaโ€).

Tehisintellekti tรถรถriistad analรผรผsivad DOM-i ja jรคrjestavad atribuudid stabiilsuse jรคrgi, et soovitada robustseid XPath- vรตi CSS-selektoreid. Need eelistavad unikaalseid ja vรคhem hapraid identifikaatoreid, vรคhendades testi kรคivitamise ajal vรคiksematest kasutajaliidese muudatustest tingitud tรตrkeid.

Jah. Isetervenevad testimisraamistikud kasutavad tehisintellekti, et tuvastada lokaatori rikkeid, seejรคrel hinnata lรคhedalasuvaid elemente sarnasuse alusel ja lรผlituda automaatselt lรคhima vaste juurde.ping testid, mis tรถรถtavad vรคiksema kรคsitsi hooldusega.

Vรตta see postitus kokku jรคrgmiselt: