Tekst veze i djelomični tekst veze 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()

Kodirati:

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 WebDriver kod u nastavku, i dalje ćete biti preusmjereni na Google.

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

Kodirati:

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 veze sadrže niz znakova "egis", jedna je metoda "By.partialLinkText()" koja će ovim dvjema vezama pristupiti odvojeno, ovisno o korištenju velikih i malih slova znakova. Pogledajte primjer koda u nastavku.

Osjetljivost na velika i mala slova za tekst veze

Kodirati

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

Kodirati:

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.

Rezime

  • Linkovima se pristupa metodom click().
  • Osim lokatora dostupnih za bilo koji WebElement, Veze također imaju lokatore temeljene na tekstu veze:
    • By.linkText() – locira veze na temelju točnog podudaranja teksta veze danog kao parametar.
    • By.partialLinkText() – locira veze na temelju djelomičnog podudaranja teksta s tekstom veze.
  • Oba gornja lokatora razlikuju velika i mala slova.
  • Ako postoji više podudaranja, By.linkText() i By.partialLinkText() će odabrati samo prvo podudaranje. U takvim slučajevima kada je prisutno više veza s istim tekstom veze, koriste se drugi lokatori temeljeni na xpath-u, CSS-u.
  • metoda findElements() & By.tagName(“a”) pronalazi sve elemente na stranici koji odgovaraju kriterijima lokatora
  • Linkovima se može pristupiti By.linkText() i By.partialLinkText() bilo da su unutar ili izvan elemenata na razini bloka.

Dnevni bilten Guru99

Započnite dan s najnovijim i najvažnijim vijestima o umjetnoj inteligenciji koje vam donosimo upravo sada.