O que é o texto do link no Selenium?
Um texto de link no Selenium é usado para identificar os hiperlinks em uma página da web. É determinado com a ajuda de uma etiqueta âncora. Para criar os hiperlinks em uma página da web, podemos usar uma tag âncora seguida do link Texto.
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 em que existiriam várias 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 a fundo como resolvê-los.
Aqui está o que você aprenderá-
- Acessando links usando correspondência exata de texto: By.linkText ()
- Acessando links usando Partial Text Match: By.partialLinkText ()
- Como obter vários links com o mesmo texto de link
- Sensibilidade a maiúsculas e minúsculas para texto de link
- Links fora e dentro de um bloco
Acessando links usando correspondência exata de texto: By.linkText ()
O acesso aos links usando o texto exato do link é feito por meio do método By.linkText () . No entanto, se houver dois links com o mesmo texto de link, esse 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"
Código:
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 = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = novo ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("clique aqui")). click ();System.out.println ("o título da página é: + driver.getTitle ());driver.quit ();}}
É assim que funciona-
Como resultado, você será direcionado automaticamente para o Google.
Acessando links usando Partial Text Match: By.partialLinkText ()
O acesso aos links usando uma parte do texto do link é feito usando o método By.partialLinkText () . Se você especificar um texto de link parcial com várias correspondências, apenas a primeira correspondência será acessada. Considere o código HTML abaixo.
Ao executar o código WebDriver abaixo, você ainda será direcionado ao Google.
Código:
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 = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = novo ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("aqui")). click ();System.out.println ("O título da página é: + 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 os links diferentes do primeiro, como faremos?
Em tais casos, geralmente, diferentes localizadores viz… By.xpath (), By.cssSelector () ou By.tagName () são usados.
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 de link
Os parâmetros para By.linkText () e By.partialLinkText () diferenciam maiúsculas de minúsculas, o que significa que a capitalização é importante. Por exemplo, na página inicial da Mercury Tours, existem dois links que contêm o texto "egis" - um é o link "CADASTRE-SE" localizado no menu superior e o outro é o link "Cadastre-se aqui" localizado na parte inferior direita da página.
Embora ambos os links contenham a sequência de caracteres "egis", um é o método "By.partialLinkText ()" que acessará esses dois links separadamente, dependendo da capitalização dos caracteres. Veja o código de exemplo abaixo.
Código
public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = novo ChromeDriver ();driver.get (baseUrl);String theLinkText = driver.findElement (por.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (Por.partialLinkText ("EGIS")).getText ();System.out.println (theLinkText);driver.quit ();}