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.

  • ๐Ÿ”— Definizione del testo del collegamento: Individua i collegamenti ipertestuali su una pagina tramite il testo di ancoraggio visibile.
  • ๐ŸŽฏ By.linkText(): Trova la corrispondenza esatta con il testo del link e restituisce il primo risultato corrispondente.
  • ๐Ÿ”Ž Tramite partialLinkText(): Corrisponde a una porzione del testo del link, restituendo anche la prima corrispondenza.
  • ๐Ÿ”  Maiuscole e minuscole: Entrambi i localizzatori considerano la maiuscola come significativa, quindi "egis" e "EGIS" sono diversi.
  • ๐Ÿงฑ Collegamenti multipli/a blocchi: Per i duplicati, utilizzare xpath o cssSelector; entrambi i metodi funzionano sia all'interno che all'esterno dei tag di blocco.

Testo del collegamento e testo parziale del collegamento in Selenium

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

Collega testo in ingresso Seleniumโ€“By.LinkText()

Collega testo in ingresso Seleniumโ€“By.LinkText()

Quando provi a eseguire il codice WebDriver riportato di seguito, accederai al primo collegamento "fai clic qui".

Collega testo in ingresso Seleniumโ€“By.LinkText()

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-

Collega testo in ingresso Seleniumโ€“By.LinkText()

Di conseguenza, verrai automaticamente indirizzato a Google.

Collega testo in ingresso Seleniumโ€“By.LinkText()

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.

Testo collegamento parziale inserito Selenium โ€“ By.partialLinkText()

 Testo collegamento parziale inserito Selenium โ€“ By.partialLinkText()

Quando esegui il codice WebDriver qui sotto, verrai comunque indirizzato a Google.

 Testo collegamento parziale inserito Selenium โ€“ By.partialLinkText()

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();
    }
}

Testo collegamento parziale inserito Selenium โ€“ By.partialLinkText()

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

Sensibilitร  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.

Sensibilitร  tra maiuscole e minuscole per il testo del collegamento

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.

Sensibilitร  tra maiuscole e minuscole per il testo del collegamento

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.

Collegamenti all'esterno e all'interno di un blocco

Collegamenti all'esterno e all'interno di un blocco

Il codice WebDriver riportato di seguito accede a entrambi questi collegamenti utilizzando il metodo By.partialLinkText().

Collegamenti all'esterno e all'interno di un blocco

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.

DOMANDE FREQUENTI

By.linkText() corrisponde al testo visibile completo ed esatto di un link, mentre By.partialLinkText() corrisponde a qualsiasi link contenente una determinata sottostringa. Entrambi restituiscono solo il primo link corrispondente quando piรน link soddisfano i requisiti.

Sรฌ. Sia By.linkText() che By.partialLinkText() distinguono tra maiuscole e minuscole, quindi la distinzione tra maiuscole e minuscole รจ importante. Il testo "egis" e "EGIS" vengono trattati come valori diversi e possono corrispondere a link diversi sulla stessa pagina.

Poichรฉ i localizzatori di testo dei link restituiscono solo la prima corrispondenza, usa By.xpath() o By.cssSelector() per selezionare un link specifico, oppure usa findElements() con By.tagName("a") per raccogliere tutti i link e scegliere quello desiderato.

Gli strumenti di intelligenza artificiale analizzano il DOM e classificano gli attributi in base alla stabilitร  per suggerire selettori XPath o CSS robusti. Privilegiano identificatori univoci e meno fragili, riducendo gli errori causati da piccole modifiche all'interfaccia utente durante l'esecuzione dei test.

Sรฌ. I framework di test auto-riparanti utilizzano l'IA per rilevare quando un localizzatore fallisce, quindi valutano gli elementi vicini in base alla somiglianza e passano automaticamente alla corrispondenza piรน vicina, mantenendoping test eseguiti con minore manutenzione manuale.

Riassumi questo post con: