Texte du lien et texte partiel du lien dans Selenium

⚡ Résumé intelligent

Texte du lien et texte partiel du lien dans Selenium Localisez les liens hypertextes sur une page web grâce à leur texte d'ancrage. La méthode By.linkText() recherche le texte exact, tandis que By.partialLinkText() recherche une partie du texte. Ces deux méthodes sont sensibles à la casse et renvoient la première occurrence.

  • 🔗 Texte du lien défini : Permet de localiser les liens hypertextes sur une page grâce à leur texte d'ancrage visible.
  • (I.e. Par linkText() : Recherche le texte exact du lien et renvoie la première occurrence.
  • ???? Par.partialLinkText() : Recherche une partie du texte du lien et renvoie également la première occurrence.
  • (I.e. Sensible aux majuscules et minuscules: Les deux localisateurs considèrent la capitalisation comme significative, donc « egis » et « EGIS » diffèrent.
  • 🧱 Liens multiples/bloqués : Pour les doublons, utilisez xpath ou cssSelector ; les deux méthodes fonctionnent à l’intérieur ou à l’extérieur des balises de bloc.

Texte du lien et texte partiel du lien dans Selenium

Qu'est-ce que le texte du lien Selenium?

A Lier le texte dans Selenium est utilisé pour identifier les hyperliens sur une page Web. Il est déterminé à l'aide d'une balise d'ancrage. Pour créer les hyperliens sur une page Web, nous pouvons utiliser une balise d'ancrage suivie du lien Texte.

Liens correspondant à un critère

Les liens sont accessibles en utilisant une correspondance exacte ou partielle du texte de leur lien. Les exemples ci-dessous fournissent des scénarios dans lesquels plusieurs correspondances existeraient et expliqueraient comment WebDriver les traiterait.

Dans ce didacticiel, nous apprendrons les méthodes disponibles pour rechercher et accéder aux liens à l'aide de Webdriver. Nous discuterons également de certains des problèmes courants rencontrés lors de l’accès aux liens et discuterons plus en détail de la manière de les résoudre.

Compléter le texte du lien dans Selenium – Par.linkText()

L'accès aux liens en utilisant leur texte exact se fait via la méthode By.linkText(). Cependant, s’il existe deux liens contenant exactement le même texte de lien, cette méthode n’accédera qu’au premier. Considérez le code HTML ci-dessous

Lier le texte dans Selenium–Par.LinkText()

Lier le texte dans Selenium–Par.LinkText()

Lorsque vous essayez d'exécuter le code WebDriver ci-dessous, vous accéderez au premier lien « cliquez ici »

Lier le texte dans Selenium–Par.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();
    }

}

Voici comment cela fonctionne-

Lier le texte dans Selenium–Par.LinkText()

Par conséquent, vous serez automatiquement redirigé vers Google.

Lier le texte dans Selenium–Par.LinkText()

Compléter le texte du lien partiel dans Selenium – Par.partialLinkText()

L'accès aux liens en utilisant une partie de leur texte de lien se fait à l'aide du Par.partialLinkText() méthode. Si vous spécifiez un texte de lien partiel comportant plusieurs correspondances, seule la première correspondance sera accessible. Considérez le code HTML ci-dessous.

Texte de lien partiel entrant Selenium – Par.partialLinkText()

 Texte de lien partiel entrant Selenium – Par.partialLinkText()

Lorsque vous exécuterez le code WebDriver ci-dessous, vous serez toujours redirigé vers Google.

 Texte de lien partiel entrant Selenium – Par.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();
    }
}

Texte de lien partiel entrant Selenium – Par.partialLinkText()

Comment obtenir plusieurs liens avec le même texte de lien

Alors, comment contourner le problème ci-dessus ? Dans les cas où il existe plusieurs liens avec le même texte de lien et que nous souhaitons accéder à des liens autres que le premier, comment procéder ?

Dans de tels cas, généralement, différents localisateurs, à savoir… By.xpath(), By.cssSelector() ou By.tagName(), sont utilisés.

Le plus couramment utilisé est By.xpath(). C'est le plus fiable mais il semble également complexe et illisible.

Sensibilité à la casse pour le texte du lien

Sensibilité à la casse pour le texte du lien

Les paramètres pour Par.linkText() et Par.partialLinkText() sont tous deux sensibles à la casse, ce qui signifie que la capitalisation est importante. Par exemple, dans Mercury Sur la page d'accueil de Tours, il y a deux liens qui contiennent le texte « egis » – l'un est le lien « S'INSCRIRE » trouvé dans le menu supérieur, et l'autre est le lien « S'inscrire ici » trouvé dans la partie inférieure droite de la page.

Sensibilité à la casse pour le texte du lien

Bien que les deux liens contiennent la séquence de caractères « egis », la méthode « By.partialLinkText() » y accédera séparément en fonction de la casse des caractères. Voir l’exemple de code ci-dessous.

Sensibilité à la casse pour le texte du lien

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

    }

Liens à l’extérieur et à l’intérieur d’un bloc

La dernière norme HTML5 permet aux balises d'être placées à l'intérieur et à l'extérieur des balises de niveau bloc telles que , ou . Les méthodes « By.linkText() » et « By.partialLinkText() » peuvent accéder à un lien situé à l'extérieur et à l'intérieur de ces éléments de niveau bloc. Considérez le code HTML ci-dessous.

Liens à l’extérieur et à l’intérieur d’un bloc

Liens à l’extérieur et à l’intérieur d’un bloc

Le code WebDriver ci-dessous accède à ces deux liens à l'aide de la méthode By.partialLinkText().

Liens à l’extérieur et à l’intérieur d’un bloc

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

Le résultat ci-dessus confirme que les deux liens ont été consultés avec succès car leurs titres de page respectifs ont été récupérés correctement.

FAQ

By.linkText() renvoie le texte complet et exact visible d'un lien, tandis que By.partialLinkText() renvoie tout lien contenant une sous-chaîne donnée. Ces deux méthodes ne renvoient que le premier lien correspondant lorsqu'il y en a plusieurs.

Oui. Les fonctions By.linkText() et By.partialLinkText() sont sensibles à la casse ; la mise en majuscules est donc importante. Les textes « egis » et « EGIS » sont considérés comme des valeurs différentes et peuvent correspondre à des liens différents sur une même page.

Étant donné que les localisateurs de texte de lien ne renvoient que la première correspondance, utilisez By.xpath() ou By.cssSelector() pour cibler un lien spécifique, ou utilisez findElements() avec By.tagName("a") pour collecter tous les liens et choisir celui dont vous avez besoin.

Les outils d'IA analysent le DOM et classent les attributs par stabilité afin de suggérer des sélecteurs XPath ou CSS robustes. Ils privilégient les identifiants uniques et moins fragiles, réduisant ainsi les erreurs dues à des modifications mineures de l'interface utilisateur lors de l'exécution des tests.

Oui. Les frameworks de test auto-réparateurs utilisent l'IA pour détecter les défaillances des localisateurs, puis évaluent la similarité des éléments voisins et basculent automatiquement vers la correspondance la plus proche.ping Des tests sont exécutés avec moins de maintenance manuelle.

Résumez cet article avec :