Texto do link e texto parcial do link em Selenium

⚡ Resumo Inteligente

Texto do link e texto parcial do link em Selenium Localiza hiperlinks em uma página da web através de seu texto âncora. O método `By.linkText()` corresponde ao texto exato, enquanto `By.partialLinkText()` corresponde a uma parte, e ambos os localizadores diferenciam maiúsculas de minúsculas e retornam a primeira correspondência.

  • 🔗 Texto do link definido: Localiza hiperlinks em uma página pelo texto âncora visível.
  • 🎯 Por.linkText(): Encontra correspondência exata com o texto do link e retorna a primeira ocorrência.
  • 🔎 Por.PartialLinkText(): Encontra correspondência em uma parte do texto do link, retornando também a primeira correspondência.
  • 🔠 Maiúsculas e minúsculas: Ambos os localizadores consideram a capitalização significativa, portanto “egis” e “EGIS” são diferentes.
  • 🧱 Vários links/Bloqueio de links: Para duplicados, use xpath ou cssSelector; ambos os métodos funcionam dentro ou fora de tags de bloco.

Texto do link e texto parcial do link em Selenium

O que é o texto do link Selenium?

A Texto do link em Selenium é usado para identificar os hiperlinks em uma página da web. É determinado com a ajuda de uma tag âncora. Para criar hiperlinks em uma página web, podemos usar uma tag âncora seguida do texto do link.

Links que correspondem a um critério

Os links podem ser acessados ​​usando uma correspondência exata ou parcial do texto do link. Os exemplos abaixo fornecem cenários onde existiriam múltiplas correspondências e explicariam como o WebDriver lidaria com elas.

Neste tutorial, aprenderemos os métodos disponíveis para localizar e acessar os Links usando o Webdriver. Além disso, discutiremos alguns dos problemas comuns enfrentados ao acessar links e discutiremos mais detalhadamente como resolvê-los.

Texto completo do link em Selenium – Por.linkText()

O acesso aos links usando o texto exato do link é feito através do método By.linkText(). Porém, se houver dois links com o mesmo texto do link, este método acessará apenas o primeiro. Considere o código HTML abaixo

Texto do link em Selenium–By.LinkText()

Texto do link em Selenium–By.LinkText()

Ao tentar executar o código WebDriver abaixo, você acessará o primeiro link “clique aqui”

Texto do link em 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();
    }

}

É assim que funciona-

Texto do link em Selenium–By.LinkText()

Como resultado, você será automaticamente redirecionado para Google.

Texto do link em Selenium–By.LinkText()

Texto do link parcial completo em Selenium – By.partialLinkText()

O acesso aos links usando uma parte do texto do link é feito usando o Por.partialLinkText() método. Se você especificar um texto de link parcial que tenha diversas correspondências, somente a primeira correspondência será acessada. Considere o código HTML abaixo.

Texto do link parcial em Selenium – By.partialLinkText()

 Texto do link parcial em Selenium – By.partialLinkText()

Ao executar o código WebDriver abaixo, você ainda será redirecionado para Google.

 Texto do link parcial em 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();
    }
}

Texto do link parcial em Selenium – By.partialLinkText()

Como obter vários links com o mesmo texto de link

Então, como contornar o problema acima? Nos casos em que existem vários links com o mesmo texto de link e queremos acessar outros links que não o primeiro, como fazemos?

Nesses casos, geralmente, diferentes localizadores, como… By.xpath(), By.cssSelector() ou By.tagName() são usados.

O mais comumente usado é By.xpath(). É o mais confiável, mas também parece complexo e ilegível.

Sensibilidade a maiúsculas e minúsculas para texto do link

Sensibilidade a maiúsculas e minúsculas para texto do link

Os parâmetros para Por.linkText() e Por.partialLinkText() ambos diferenciam maiúsculas de minúsculas, o que significa que a capitalização é importante. Por exemplo, em Mercury Na página inicial da Tours, existem dois links que contêm o texto “egis” – um é o link “REGISTRO” encontrado no menu superior, e o outro é o link “Cadastre-se aqui” encontrado na parte inferior direita da página.

Sensibilidade a maiúsculas e minúsculas para texto do link

Embora ambos os links contenham a sequência de caracteres “egis”, o método “By.partialLinkText()” acessará esses dois links separadamente, dependendo do uso de maiúsculas e minúsculas nos caracteres. Veja o exemplo de código abaixo.

Sensibilidade a maiúsculas e minúsculas para texto do link

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

    }

Links fora e dentro de um bloco

O padrão HTML5 mais recente permite que as tags sejam colocadas dentro e fora de tags em nível de bloco, como , ou . Os métodos “By.linkText()” e “By.partialLinkText()” podem acessar um link localizado fora e dentro desses elementos de nível de bloco. Considere o código HTML abaixo.

Links fora e dentro de um bloco

Links fora e dentro de um bloco

O código WebDriver abaixo acessa esses dois links usando o método By.partialLinkText().

Links fora e dentro de um bloco

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

A saída acima confirma que ambos os links foram acessados ​​com sucesso porque seus respectivos títulos de páginas foram recuperados corretamente.

Perguntas Frequentes

By.linkText() corresponde ao texto completo e exato visível de um link, enquanto By.partialLinkText() corresponde a qualquer link que contenha uma determinada substring. Ambos retornam apenas o primeiro link correspondente quando vários links se qualificam.

Sim. Tanto By.linkText() quanto By.partialLinkText() diferenciam maiúsculas de minúsculas, portanto, o uso de maiúsculas e minúsculas é importante. Os textos “egis” e “EGIS” são tratados como valores diferentes e podem corresponder a links diferentes na mesma página.

Como os localizadores de texto de links retornam apenas a primeira correspondência, use By.xpath() ou By.cssSelector() para direcionar um link específico ou use findElements() com By.tagName(“a”) para coletar todos os links e escolher aquele que você precisa.

As ferramentas de IA analisam o DOM e classificam os atributos por estabilidade para sugerir seletores XPath ou CSS robustos. Elas priorizam identificadores únicos e menos frágeis, reduzindo falhas causadas por pequenas alterações na interface do usuário durante a execução dos testes.

Sim. As estruturas de teste com autorrecuperação usam IA para detectar quando um localizador falha, classificando os elementos próximos por similaridade e alternando automaticamente para a correspondência mais próxima.ping Testes em execução com menos manutenção manual.

Resuma esta postagem com: