Co to jest tekst linku w selenie?
Link Text w selen służy do identyfikacji hiperłącza na stronie internetowej. Określa się to za pomocą tagu kotwicy. Aby utworzyć hiperłącza na stronie internetowej, możemy użyć tagu kotwicy, po którym następuje tekst łącza.
Linki pasujące do kryterium
Dostęp do łączy można uzyskać za pomocą dokładnego lub częściowego dopasowania ich tekstu. Poniższe przykłady przedstawiają scenariusze, w których mogłoby istnieć wiele dopasowań, i wyjaśniają, jak poradzi sobie z nimi WebDriver.
W tym samouczku nauczymy się dostępnych metod wyszukiwania i uzyskiwania dostępu do łączy za pomocą programu Webdriver. Omówimy również niektóre typowe problemy napotykane podczas uzyskiwania dostępu do łączy, a także omówimy dalej, jak je rozwiązać.
Oto, czego się nauczysz-
- Dostęp do łączy przy użyciu dokładnego dopasowania tekstu: By.linkText ()
- Dostęp do łączy przy użyciu dopasowania częściowego tekstu: By.partialLinkText ()
- Jak uzyskać wiele linków z tym samym tekstem łącza
- Rozróżnianie wielkości liter w tekście łącza
- Łącza na zewnątrz i wewnątrz bloku
Dostęp do łączy przy użyciu dokładnego dopasowania tekstu: By.linkText ()
Dostęp do łączy przy użyciu ich dokładnego tekstu odbywa się za pomocą metody By.linkText () . Jeśli jednak istnieją dwa łącza, które mają ten sam tekst, ta metoda będzie miała dostęp tylko do pierwszego. Rozważ poniższy kod HTML
Podczas próby uruchomienia poniższego kodu WebDriver uzyskasz dostęp do pierwszego łącza „kliknij tutaj”
Kod:
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;klasa publiczna MyClass {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Sterownik WebDriver = nowy ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("kliknij tutaj")). click ();System.out.println ("tytuł strony to: + driver.getTitle ());driver.quit ();}}
Oto jak to działa-
W rezultacie zostaniesz automatycznie przeniesiony do Google.
Dostęp do łączy przy użyciu dopasowania częściowego tekstu: By.partialLinkText ()
Dostęp do łączy przy użyciu części ich tekstu odbywa się za pomocą metody By.partialLinkText () . Jeśli określisz częściowy tekst linku, który ma wiele dopasowań, tylko pierwsze dopasowanie będzie dostępne. Rozważ poniższy kod HTML.
Po wykonaniu poniższego kodu WebDriver zostaniesz przeniesiony do Google.
Kod:
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;klasa publiczna P1 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Sterownik WebDriver = nowy ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("tutaj")). click ();System.out.println ("Tytuł strony to: + driver.getTitle ());driver.quit ();}}
Jak uzyskać wiele linków z tym samym tekstem łącza
Jak więc obejść powyższy problem? W przypadkach, gdy istnieje wiele linków z tym samym tekstem łącza, a my chcemy uzyskać dostęp do linków innych niż pierwszy, jak sobie z tym poradzimy?
W takich przypadkach na ogół używane są różne lokalizatory, a mianowicie… By.xpath (), By.cssSelector () lub By.tagName ().
Najczęściej używana jest By.xpath (). Jest najbardziej niezawodny, ale wygląda na skomplikowany i nieczytelny.
Rozróżnianie wielkości liter w tekście łącza
W parametrach By.linkText () i By.partialLinkText () rozróżniana jest wielkość liter, co oznacza, że wielkość liter ma znaczenie. Na przykład na stronie głównej Mercury Tours znajdują się dwa łącza zawierające tekst „egis” - jeden to „REJESTRACJA” znajdujący się w górnym menu, a drugi to „Zarejestruj się tutaj” znajdujący się w prawej dolnej części strony.
Chociaż oba łącza zawierają sekwencję znaków „egis”, jednym z nich jest metoda „By.partialLinkText ()”, która będzie uzyskiwać dostęp do tych dwóch linków oddzielnie w zależności od wielkości liter. Zobacz przykładowy kod poniżej.
Kod
public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Sterownik WebDriver = nowy ChromeDriver ();driver.get (baseUrl);String theLinkText = driver.findElement (By.partialLinkText („egis”)).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (wg.partialLinkText („EGIS”)).getText ();System.out.println (theLinkText);driver.quit ();}