Text odkazu a částečný text odkazu v Selenium

⚡ Chytré shrnutí

Text odkazu a částečný text odkazu v Selenium vyhledá hypertextové odkazy na webové stránce pomocí jejich kotevního textu. Metoda By.linkText() vyhledá přesný text, zatímco By.partialLinkText() vyhledá jeho část a oba lokátory rozlišují velká a malá písmena a vracejí první shodu.

  • 🔗 Definovaný text odkazu: Vyhledá hypertextové odkazy na stránce podle jejich viditelného kotevního textu.
  • 🎯 By.linkText(): Odpovídá přesnému textu odkazu a vrací první shodu.
  • 🔎 Pomocí.partialLinkText(): Odpovídá části textu odkazu a vrací také první shodu.
  • 🔠 Rozlišování velkých a malých písmen: Oba lokátory považují velká písmena za významná, takže se slova „egis“ a „EGIS“ liší.
  • 🧱 Vícenásobné/blokové odkazy: Pro duplikáty použijte XPath nebo CSSSelector; obě metody fungují uvnitř i vně tagů bloků.

Text odkazu a částečný text odkazu v Selenium

V čem je text odkazu Selenium?

A Text odkazu v Selenium se používá k identifikaci hypertextových odkazů na webové stránce. Určuje se pomocí kotevního štítku. Pro vytvoření hypertextových odkazů na webové stránce můžeme použít kotevní značku následovanou textem odkazu.

Odkazy odpovídající kritériu

K odkazům lze přistupovat pomocí přesné nebo částečné shody textu odkazu. Níže uvedené příklady poskytují scénáře, kde by existovalo více shod, a vysvětlují, jak by se s nimi WebDriver vypořádal.

V tomto tutoriálu se naučíme dostupné metody k nalezení a přístupu k odkazům pomocí Webdriveru. Budeme také diskutovat o některých běžných problémech, kterým čelíte při přístupu k Links, a dále o tom, jak je vyřešit.

Kompletní text odkazu v Selenium – By.linkText()

Přístup k odkazům pomocí jejich přesného textu se provádí pomocí metody By.linkText().. Pokud však existují dva odkazy, které mají velmi stejný text odkazu, tato metoda zpřístupní pouze ten první. Zvažte HTML kód níže

Text odkazu v Selenium–By.LinkText()

Text odkazu v Selenium–By.LinkText()

Když se pokusíte spustit níže uvedený kód WebDriver, dostanete se na první odkaz „klikněte sem“.

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

}

Zde je návod, jak to funguje-

Text odkazu v Selenium–By.LinkText()

V důsledku toho budete automaticky přesměrováni na Google.

Text odkazu v Selenium–By.LinkText()

Doplňte částečný text odkazu Selenium – By.partialLinkText()

Přístup k odkazům pomocí části jejich textu odkazu se provádí pomocí By.partialLinkText() metoda. Pokud zadáte částečný text odkazu, který má více shod, bude přístupná pouze první shoda. Zvažte HTML kód níže.

Částečný text odkazu v Selenium – By.partialLinkText()

 Částečný text odkazu v Selenium – By.partialLinkText()

Po spuštění níže uvedeného kódu WebDriver budete stále přesměrováni na Google.

 Částečný text odkazu v 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();
    }
}

Částečný text odkazu v Selenium – By.partialLinkText()

Jak získat více odkazů se stejným textem odkazu

Jak tedy výše uvedený problém obejít? V případech, kdy existuje více odkazů se stejným textem odkazu a my chceme získat přístup k jiným odkazům, než je ten první, jak na to?

V takových případech se obecně používají různé lokátory viz… By.xpath(), By.cssSelector() nebo By.tagName().

Nejčastěji se používá By.xpath(). Je nejspolehlivější, ale také vypadá složitě a nečitelně.

U textu odkazu se rozlišují malá a velká písmena

Rozlišení malých a velkých písmen pro text odkazu

Parametry pro By.linkText() a By.partialLinkText() obě rozlišují velká a malá písmena, což znamená, že na velkých písmenech záleží. Například v Mercury Na domovské stránce Tours jsou dva odkazy, které obsahují text „egis“ – jeden je odkaz „ZAREGISTRUJTE se“ v horním menu a druhý je odkaz „Zaregistrujte se zde“ v pravé dolní části stránky.

Rozlišení malých a velkých písmen pro text odkazu

Přestože oba odkazy obsahují sekvenci znaků „egis“, metoda „By.partialLinkText()“ bude k těmto dvěma odkazům přistupovat odděleně v závislosti na psaní velkých písmen. Viz níže uvedený ukázkový kód.

Rozlišení malých a velkých písmen pro text odkazu

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

    }

Odkazy vně a uvnitř bloku

Nejnovější standard HTML5 umožňuje umístění značek uvnitř i vně značek na úrovni bloku, jako jsou , nebo . Metody „By.linkText()“ a „By.partialLinkText()“ mohou přistupovat k odkazu umístěnému vně a uvnitř těchto prvků na úrovni bloku. Zvažte HTML kód níže.

Odkazy vně a uvnitř bloku

Odkazy vně a uvnitř bloku

Níže uvedený kód WebDriver přistupuje k oběma těmto odkazům pomocí metody By.partialLinkText().

Odkazy vně a uvnitř 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();
    }
}

Výše uvedený výstup potvrzuje, že oba odkazy byly úspěšně zpřístupněny, protože jejich příslušné názvy stránek byly načteny správně.

Nejčastější dotazy

Funkce By.linkText() vyhledává úplný a přesný viditelný text odkazu, zatímco funkce By.partialLinkText() vyhledává jakýkoli odkaz obsahující daný podřetězec. Oba vracejí pouze první odpovídající odkaz, pokud se kvalifikuje několik odkazů.

Ano. Funkce By.linkText() i By.partialLinkText() rozlišují velká a malá písmena, takže na psaní velkých písmen záleží. Texty „egis“ a „EGIS“ jsou považovány za různé hodnoty a mohou odpovídat různým odkazům na stejné stránce.

Protože lokátory textu odkazů vracejí pouze první shodu, použijte By.xpath() nebo By.cssSelector() k nalezení konkrétního odkazu, nebo použijte findElements() s By.tagName(„a“) ke shromáždění všech odkazů a výběru toho, který potřebujete.

Nástroje umělé inteligence analyzují DOM a řadí atributy podle stability, aby navrhly robustní selektory XPath nebo CSS. Upřednostňují jedinečné, méně křehké identifikátory, čímž snižují selhání způsobená drobnými změnami uživatelského rozhraní během provádění testů.

Ano. Samoopravné testovací frameworky používají umělou inteligenci k detekci selhání lokátoru, poté vyhodnotí blízké prvky podle podobnosti a automaticky přepnou na nejbližší shodu.ping testy probíhající s menší manuální údržbou.

Shrňte tento příspěvek takto: