Che cos'è il testo del collegamento nel selenio?
Un Link Text in Selenium viene utilizzato per identificare i collegamenti ipertestuali su una pagina web. È determinato con l'aiuto di un tag di ancoraggio. Per creare i collegamenti ipertestuali su una pagina Web, possiamo utilizzare un tag di ancoraggio seguito dal collegamento Testo.
Collegamenti che corrispondono a un criterio
È possibile accedere ai collegamenti utilizzando una corrispondenza esatta o parziale del testo del collegamento. Gli esempi seguenti forniscono scenari in cui esisterebbero più corrispondenze e spiegherebbero come WebDriver li gestirà.
In questo tutorial impareremo i metodi disponibili per trovare e accedere ai collegamenti utilizzando Webdriver. Inoltre, discuteremo alcuni dei problemi comuni incontrati durante l'accesso ai collegamenti e discuteremo ulteriormente su come risolverli.
Ecco cosa imparerai-
- Accesso ai collegamenti utilizzando la corrispondenza esatta del testo: By.linkText ()
- Accesso ai collegamenti utilizzando la corrispondenza del testo parziale: By.partialLinkText ()
- Come ottenere più collegamenti con lo stesso testo del collegamento
- Distinzione tra maiuscole e minuscole per il testo del collegamento
- Collegamenti all'esterno e all'interno di un blocco
Accesso ai collegamenti utilizzando la corrispondenza esatta del testo: By.linkText ()
L'accesso ai collegamenti utilizzando il loro testo di collegamento esatto viene effettuato tramite il metodo By.linkText () . Tuttavia, se sono presenti due collegamenti che hanno lo stesso testo di collegamento, questo metodo accederà solo al primo. Considera il codice HTML di seguito
Quando si tenta di eseguire il codice WebDriver di seguito, si accederà al primo collegamento "fare clic qui"
Codice:
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 = nuovo ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("clicca qui")). click ();System.out.println ("il titolo della pagina è: + driver.getTitle ());driver.quit ();}}
Ecco come funziona-
Di conseguenza, verrai automaticamente reindirizzato a Google.
Accesso ai collegamenti utilizzando la corrispondenza del testo parziale: By.partialLinkText ()
L'accesso ai collegamenti utilizzando una parte del testo del collegamento viene effettuato utilizzando il metodo By.partialLinkText () . Se si specifica un testo di collegamento parziale che ha più corrispondenze, si accederà solo alla prima corrispondenza. Considera il codice HTML di seguito.
Quando esegui il codice WebDriver di seguito, verrai comunque reindirizzato a Google.
Codice:
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 = nuovo ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("qui")). click ();System.out.println ("Il titolo della pagina è: + driver.getTitle ());driver.quit ();}}
Come ottenere più collegamenti con lo stesso testo del collegamento
Quindi, come aggirare il problema di cui sopra? Nei casi in cui sono presenti più collegamenti con lo stesso testo di collegamento e si desidera accedere a collegamenti diversi dal primo, come si procede?
In questi casi, generalmente, vengono utilizzati localizzatori diversi, vale a dire ... By.xpath (), By.cssSelector () o By.tagName ().
Il più comunemente usato è By.xpath (). È il più affidabile ma sembra anche complesso e non leggibile.
Distinzione tra maiuscole e minuscole per il testo del collegamento
I parametri per By.linkText () e By.partialLinkText () fanno distinzione tra maiuscole e minuscole, il che significa che le maiuscole sono importanti. Ad esempio, nella home page di Mercury Tours, ci sono due link che contengono il testo "egis": uno è il link "REGISTER" che si trova nel menu in alto e l'altro è il link "Register here" che si trova nella parte in basso a destra della pagina.
Sebbene entrambi i collegamenti contengano la sequenza di caratteri "egis", uno è il metodo "By.partialLinkText ()" che accederà a questi due collegamenti separatamente a seconda delle lettere maiuscole dei caratteri. Vedere il codice di esempio di seguito.
Codice
public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = nuovo 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 ();}