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.
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
Kui proovite allolevat WebDriveri koodi käivitada, pääsete juurde esimesele lingile "klõpsake siin".
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 -
Selle tulemusel suunatakse teid automaatselt lehele Google.
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.
Alloleva WebDriveri koodi käivitamisel suunatakse teid ikkagi Google.
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(); } }
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
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”.
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.
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.
Allolev WebDriveri kood pääseb mõlemale lingile, kasutades meetodit By.partialLinkText().
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.



.png)
.png)

.png)
.png)
.png)
.png)
.png)

.png)
.png)
.png)
.png)
.png)