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.
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
Ao tentar executar o código WebDriver abaixo, você acessará o primeiro link “clique aqui”
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-
Como resultado, você será automaticamente redirecionado para Google.
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.
Ao executar o código WebDriver abaixo, você ainda será redirecionado para 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(); } }
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
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.
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.
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.
O código WebDriver abaixo acessa esses dois links usando o método 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(); } }
A saída acima confirma que ambos os links foram acessados com sucesso porque seus respectivos títulos de páginas foram recuperados corretamente.



.png)
.png)

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

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