Tekst linku i częściowy tekst linku w Selenium

⚡ Inteligentne podsumowanie

Tekst linku i częściowy tekst linku w Selenium Lokalizuje hiperłącza na stronie internetowej za pomocą tekstu zakotwiczenia. Metoda By.linkText() dopasowuje cały tekst, podczas gdy By.partialLinkText() dopasowuje jego fragment. Oba lokalizatory rozróżniają wielkość liter i zwracają pierwsze dopasowanie.

  • 🔗 Definicja tekstu łącza: Lokalizuje hiperłącza na stronie na podstawie widocznego tekstu zakotwiczenia.
  • 🎯 Przez.linkText(): Dopasowuje dokładny tekst linku i zwraca pierwsze dopasowanie.
  • 🔎 Przez partialLinkText(): Dopasowuje fragment tekstu łącza, zwracając również pierwsze dopasowanie.
  • 🔠 Rozróżnianie wielkości liter: Oba lokalizatory traktują kapitalizację jako istotną, dlatego „egis” i „EGIS” różnią się.
  • 🧱 Linki wielokrotne/blokowe: W przypadku duplikatów użyj xpath lub cssSelector; obie metody działają zarówno wewnątrz, jak i na zewnątrz znaczników bloku.

Tekst linku i częściowy tekst linku w Selenium

W czym jest tekst łącza Selenium?

A Link Tekst w Selenium służy do identyfikacji hiperłączy na stronie internetowej. Określa się to za pomocą znacznika kotwiczącego. Do tworzenia hiperłączy na stronie internetowej możemy użyć znacznika zakotwiczenia, po którym następuje tekst łącza.

Linki spełniające kryterium

Dostęp do łączy można uzyskać za pomocą dokładnego lub częściowego dopasowania tekstu łącza. Poniższe przykłady przedstawiają scenariusze, w których istnieje wiele dopasowań, i wyjaśniają, jak WebDriver sobie z nimi poradzi.

W tym samouczku poznamy dostępne metody wyszukiwania łączy i uzyskiwania do nich dostępu za pomocą sterownika internetowego. Omówimy także niektóre typowe problemy napotykane podczas uzyskiwania dostępu do Links i będziemy dalej omawiać, jak je rozwiązać.

Pełny tekst łącza w Selenium – By.linkText()

Dostęp do linków przy użyciu dokładnego tekstu linku odbywa się za pomocą metody By.linkText().. Jeśli jednak istnieją dwa łącza o tym samym tekście, ta metoda umożliwi dostęp tylko do pierwszego. Rozważ poniższy kod HTML

Tekst łącza w Selenium–By.LinkText()

Tekst łącza w Selenium–By.LinkText()

Gdy spróbujesz uruchomić poniższy kod WebDrivera, uzyskasz dostęp do pierwszego linku „kliknij tutaj”.

Tekst łącza w 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();
    }

}

Oto jak to działa-

Tekst łącza w Selenium–By.LinkText()

W rezultacie zostaniesz automatycznie przeniesiony do Google.

Tekst łącza w Selenium–By.LinkText()

Wypełnij częściowy tekst łącza w Selenium – By.partialLinkText()

Dostęp do linków za pomocą części tekstu linku odbywa się za pomocą By.częściowyLinkText() metoda. Jeśli określisz częściowy tekst łącza, który ma wiele dopasowań, dostępny będzie tylko pierwszy dopasowania. Rozważ poniższy kod HTML.

Częściowy tekst łącza Selenium – By.partialLinkText()

 Częściowy tekst łącza Selenium – By.partialLinkText()

Po wykonaniu poniższego kodu WebDriver nadal zostaniesz przeniesiony do Google.

 Częściowy tekst łącza 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();
    }
}

Częściowy tekst łącza Selenium – By.partialLinkText()

Jak uzyskać wiele linków z tym samym tekstem linku

Jak zatem obejść powyższy problem? W przypadku, gdy istnieje wiele linków z tym samym tekstem linku, a chcemy uzyskać dostęp do linków innych niż pierwszy, jak to zrobić?

W takich przypadkach używa się zazwyczaj różnych lokalizatorów, np. By.xpath(), By.cssSelector() lub By.tagName().

Najczęściej używany jest By.xpath(). Jest najbardziej niezawodny, ale wygląda na skomplikowany i nieczytelny.

Uwzględniana jest wielkość liter w tekście łącza

Uwzględnianie wielkości liter w tekście łącza

Parametry dla Według.linkText() oraz By.częściowyLinkText() w obu przypadkach rozróżniana jest wielkość liter, co oznacza, że ​​wielkość liter ma znaczenie. Na przykład w Mercury Na stronie głównej Tours znajdują się dwa linki zawierające tekst „egis” – jeden to link „ZAREJESTRUJ SIĘ” znajdujący się w górnym menu, a drugi to link „Zarejestruj się tutaj” znajdujący się w prawej dolnej części strony.

Uwzględnianie wielkości liter w tekście łącza

Chociaż oba linki zawierają sekwencję znaków „egis”, metoda „By.partialLinkText()” będzie odwoływać się do nich osobno, w zależności od wielkości liter. Zobacz przykładowy kod poniżej.

Uwzględnianie wielkości liter w tekście łącza

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

    }

Linki na zewnątrz i wewnątrz bloku

Najnowszy standard HTML5 umożliwia umieszczanie tagów wewnątrz i na zewnątrz tagów blokowych, takich jak , lub . Metody „By.linkText()” i „By.partialLinkText()” umożliwiają dostęp do łącza znajdującego się na zewnątrz i wewnątrz tych elementów blokowych. Rozważ poniższy kod HTML.

Linki na zewnątrz i wewnątrz bloku

Linki na zewnątrz i wewnątrz bloku

Poniższy kod WebDrivera umożliwia dostęp do obu tych łączy przy użyciu metody By.partialLinkText().

Linki na zewnątrz i wewnątrz bloku

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

Dane wyjściowe potwierdzają, że dostęp do obu linków przebiegł pomyślnie, ponieważ tytuły odpowiednich stron zostały pobrane poprawnie.

FAQ

By.linkText() dopasowuje cały, dokładny widoczny tekst linku, natomiast By.partialLinkText() dopasowuje dowolny link zawierający dany podciąg. Obie funkcje zwracają tylko pierwszy pasujący link, jeśli istnieje kilka pasujących linków.

Tak. Zarówno By.linkText(), jak i By.partialLinkText() rozróżniają wielkość liter, więc kapitalizacja ma znaczenie. Teksty „egis” i „EGIS” są traktowane jako różne wartości i mogą odpowiadać różnym linkom na tej samej stronie.

Ponieważ lokalizatory tekstu linku zwracają tylko pierwsze dopasowanie, użyj By.xpath() lub By.cssSelector(), aby wskazać konkretny link, albo użyj findElements() z By.tagName(“a”), aby zebrać wszystkie linki i wybrać ten, którego potrzebujesz.

Narzędzia AI analizują DOM i klasyfikują atrybuty według stabilności, aby sugerować solidne selektory XPath lub CSS. Preferują unikalne, mniej kruche identyfikatory, redukując błędy spowodowane drobnymi zmianami interfejsu użytkownika podczas wykonywania testów.

Tak. Samonaprawiające się struktury testowe wykorzystują sztuczną inteligencję do wykrywania awarii lokalizatora, a następnie oceniają pobliskie elementy według podobieństwa i automatycznie przełączają się na najbliższe dopasowanie.ping testy przeprowadzane z mniejszą ilością ręcznej konserwacji.

Podsumuj ten post następująco: