Heim >Web-Frontend >js-Tutorial >Wie klicke ich mit Puppeteer und XPath auf Elemente basierend auf Textinhalten?

Wie klicke ich mit Puppeteer und XPath auf Elemente basierend auf Textinhalten?

Susan Sarandon
Susan SarandonOriginal
2024-10-28 16:30:02925Durchsuche

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

Mit Puppeteer auf Elemente nach Text klicken

In Puppeteer kann das Klicken auf bestimmte Elemente basierend auf ihrem Textinhalt mithilfe von XPath-Ausdrücken erreicht werden.

So klicken Sie auf Elemente mit Text

Um auf ein Element mit bestimmtem Text zu klicken, verwenden Sie den folgenden XPath-Ausdruck:

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

Ersetzen Sie „element „ mit dem entsprechenden Tag-Namen (z. B. „button“ oder „a“) ​​und „text“ mit der gewünschten Teilzeichenfolge, die übereinstimmen soll. Zum Beispiel:

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

Überlegungen

  • Stellen Sie sicher, dass das Element die genaue Textzeichenfolge enthält.
  • Wenn das Element darin verschachtelt ist Um einen bestimmten Container zu erstellen, verwenden Sie ein zusätzliches „/“, um das gewünschte Vorgängerelement auszuwählen. Um beispielsweise auf eine Schaltfläche innerhalb eines Div zu klicken:
//div[@class='container']/button[contains(., 'Button text')]

XPath vs. Text()

Der XPath-Ausdruck enthält(., ' Text‘) verwendet die untergeordneten Knoten des Elements, um den angegebenen Text abzugleichen. Im Gegensatz dazu berücksichtigt enthält(text(), 'Text') nur den Textinhalt des Elements.

Beispiel

Gegebenes folgendes HTML:

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

Um auf die Schaltfläche zu klicken, verwenden Sie:

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

Das obige ist der detaillierte Inhalt vonWie klicke ich mit Puppeteer und XPath auf Elemente basierend auf Textinhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn