Maison  >  Article  >  interface Web  >  Comment cliquer sur des éléments basés sur du contenu textuel à l'aide de Puppeteer et XPath ?

Comment cliquer sur des éléments basés sur du contenu textuel à l'aide de Puppeteer et XPath ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 16:30:02852parcourir

How to Click Elements Based on Text Content Using Puppeteer and XPath?

Cliquer sur des éléments par texte avec Puppeteer

Dans Puppeteer, cliquer sur des éléments spécifiques en fonction de leur contenu textuel peut être obtenu à l'aide d'expressions XPath.

Comment cliquer sur des éléments avec du texte

Pour cliquer sur un élément avec un texte spécifique, utilisez l'expression XPath suivante :

const [element] = await page.$x("//element[contains(., 'text')]");
await element.click();

Remplacez "élément " avec le nom de balise approprié (par exemple, "bouton" ou "a") et "texte" avec la sous-chaîne souhaitée. Par exemple :

//button[contains(., 'Button text')]

Considérations

  • Assurez-vous que l'élément contient la chaîne de texte exacte.
  • Si l'élément est imbriqué dans un conteneur spécifique, utilisez un "/" supplémentaire pour sélectionner l'élément ancêtre souhaité. Par exemple, pour cliquer sur un bouton à l'intérieur d'un div :
//div[@class='container']/button[contains(., 'Button text')]

XPath vs. Text()

L'expression XPath contient(., ' Text') utilise les nœuds enfants de l'élément pour correspondre au texte spécifié. En revanche, contain(text(), 'Text') ne prend en compte que le contenu textuel de l'élément.

Exemple

Étant donné le code HTML suivant :

<div class="elements">
    <button>Button text</button>
    <a href="#">Href text</a>
    <div>Div text</div>
</div>

Pour cliquer sur le bouton, utilisez :

const [button] = await page.$x("//div[@class='elements']/button[contains(., 'Button text')]");
await button.click();

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn