¿Qué es el texto de enlace en selenio?
Se utiliza un texto de enlace en Selenium para identificar los hipervínculos en una página web. Se determina con la ayuda de una etiqueta de anclaje. Para crear los hipervínculos en una página web, podemos usar una etiqueta de anclaje seguida del texto del enlace.
Enlaces que coinciden con un criterio
Se puede acceder a los enlaces utilizando una coincidencia exacta o parcial del texto del enlace. Los ejemplos a continuación proporcionan escenarios en los que existirían múltiples coincidencias y explicarían cómo WebDriver los trataría.
En este tutorial, aprenderemos los métodos disponibles para buscar y acceder a los enlaces usando Webdriver. Además, analizaremos algunos de los problemas comunes que se enfrentan al acceder a los enlaces y analizaremos cómo resolverlos.
Esto es lo que aprenderá:
- Acceder a enlaces usando la Coincidencia de texto exacta: By.linkText ()
- Accediendo a enlaces usando Partial Text Match: By.partialLinkText ()
- Cómo obtener varios enlaces con el mismo texto de enlace
- Distinción de mayúsculas y minúsculas para el texto del enlace
- Vínculos dentro y fuera de un bloque
Acceder a enlaces usando la Coincidencia de texto exacta: By.linkText ()
El acceso a los enlaces utilizando su texto de enlace exacto se realiza mediante el método By.linkText () . Sin embargo, si hay dos enlaces que tienen el mismo texto de enlace, este método solo accederá al primero. Considere el código HTML a continuación
Cuando intente ejecutar el código WebDriver a continuación, accederá al primer enlace "haga clic aquí"
Código:
import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar 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");Controlador WebDriver = nuevo ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("haga clic aquí")). click ();System.out.println ("el título de la página es: + driver.getTitle ());driver.quit ();}}
Así es como funciona-
Como resultado, se le dirigirá automáticamente a Google.
Accediendo a enlaces usando Partial Text Match: By.partialLinkText ()
El acceso a los enlaces mediante una parte del texto del enlace se realiza mediante el método By.partialLinkText () . Si especifica un texto de enlace parcial que tiene varias coincidencias, solo se accederá a la primera coincidencia. Considere el código HTML a continuación.
Cuando ejecute el código de WebDriver a continuación, seguirá siendo llevado a Google.
Código:
import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.chrome.ChromeDriver;clase pública 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");Controlador WebDriver = nuevo ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("aquí")). click ();System.out.println ("El título de la página es: + driver.getTitle ());driver.quit ();}}
Cómo obtener varios enlaces con el mismo texto de enlace
Entonces, ¿cómo solucionar el problema anterior? En los casos en los que hay varios enlaces con el mismo texto del enlace y queremos acceder a otros enlaces distintos al primero, ¿cómo lo hacemos?
En tales casos, generalmente, se utilizan diferentes localizadores a saber… By.xpath (), By.cssSelector () o By.tagName ().
El más utilizado es By.xpath (). Es el más confiable, pero también parece complejo y no legible.
Distinción de mayúsculas y minúsculas para el texto del enlace
Los parámetros de By.linkText () y By.partialLinkText () distinguen entre mayúsculas y minúsculas, lo que significa que las mayúsculas son importantes. Por ejemplo, en la página de inicio de Mercury Tours, hay dos vínculos que contienen el texto "egis": uno es el vínculo "REGISTRARSE" que se encuentra en el menú superior y el otro es el vínculo "Regístrese aquí" que se encuentra en la parte inferior derecha. de la página.
Aunque ambos enlaces contienen la secuencia de caracteres "egis", uno es el método "By.partialLinkText ()" que accederá a estos dos enlaces por separado dependiendo de las mayúsculas de los caracteres. Vea el código de muestra a continuación.
Código
public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Controlador WebDriver = nuevo ChromeDriver ();driver.get (baseUrl);Cadena theLinkText = driver.findElement (Por.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (Por.partialLinkText ("EGIS")).getText ();System.out.println (theLinkText);driver.quit ();}