Testo del collegamento e testo parziale del collegamento in Selenium
โก Riepilogo intelligente
Testo del collegamento e testo parziale del collegamento in Selenium Individua i collegamenti ipertestuali su una pagina web tramite il loro testo di ancoraggio. Il metodo By.linkText() corrisponde al testo esatto, mentre By.partialLinkText() corrisponde a una parte; entrambi i localizzatori distinguono tra maiuscole e minuscole e restituiscono la prima corrispondenza.

Che cos'รจ il testo del collegamento Selenium?
A Collega testo in Selenium viene utilizzato per identificare i collegamenti ipertestuali su una pagina web. Viene 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 potrebbero esistere piรน corrispondenze e spiegano come WebDriver le gestirebbe.
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.
Completa il testo del collegamento in Selenium โ Da.linkText()
L'accesso ai collegamenti utilizzando il testo esatto del collegamento avviene tramite il metodo By.linkText(). Tuttavia, se sono presenti due collegamenti con lo stesso testo di collegamento, questo metodo accederร solo al primo. Considera il codice HTML riportato di seguito
Quando provi a eseguire il codice WebDriver riportato di seguito, accederai al primo collegamento "fai clic qui".
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(); } }
Ecco come funziona-
Di conseguenza, verrai automaticamente indirizzato a Google.
Completa il testo del collegamento parziale in Selenium โ By.partialLinkText()
L'accesso ai collegamenti utilizzando una parte del testo del collegamento viene effettuato utilizzando il file By.partialLinkText() metodo. Se specifichi un testo di collegamento parziale che presenta piรน corrispondenze, si accederร solo alla prima corrispondenza. Considera il codice HTML riportato di seguito.
Quando esegui il codice WebDriver qui sotto, verrai comunque indirizzato a 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(); } }
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 desideriamo accedere a collegamenti diversi dal primo, come procedere?
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 complesso e anche illeggibile.
Distinzione tra maiuscole e minuscole per il testo del collegamento
I parametri per Per.linkText() and By.partialLinkText() sono entrambi sensibili alle maiuscole, il che significa che le maiuscole sono importanti. Ad esempio, nel Mercury Nella home page di Tours, ci sono due collegamenti che contengono il testo "egis": uno รจ il collegamento "REGISTRATI" che si trova nel menu in alto e l'altro รจ il collegamento "Registrati qui" che si trova nella parte in basso a destra della pagina.
Sebbene entrambi i link contengano la sequenza di caratteri "egis", il metodo "By.partialLinkText()" accederร a questi due link separatamente a seconda che i caratteri siano maiuscoli o minuscoli. Vedi il codice di esempio qui sotto.
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(); }
Collegamenti all'esterno e all'interno di un blocco
L'ultimo standard HTML5 consente di posizionare i tag all'interno e all'esterno di tag a livello di blocco come , o . I metodi โBy.linkText()โ e โBy.partialLinkText()โ possono accedere a un collegamento situato all'esterno e all'interno di questi elementi a livello di blocco. Considera il codice HTML riportato di seguito.
Il codice WebDriver riportato di seguito accede a entrambi questi collegamenti utilizzando il metodo 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(); } }
L'output sopra conferma che รจ stato effettuato l'accesso a entrambi i collegamenti perchรฉ i rispettivi titoli di pagina sono stati recuperati correttamente.


.png)
.png)

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

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