Mit Puppeteer auf ein Element mit Text klicken
Herausforderung: Ein Element ausschließlich anhand seines Textes finden und anklicken Inhalt.
Betrachten Sie das folgende HTML-Snippet:
<code class="html"><div class="elements"> <button>Button text</button> <a href="#">Href text</a> <div>Div text</div> </div></code>
Ziel: Implementieren Sie eine Klickaktion für das Schaltflächenelement, das „Schaltflächentext“ enthält.
Lösung:
Der XPath-Ausdruck unten identifiziert die Schaltfläche, die den gewünschten Text enthält:
"//button[contains(., 'Button text')]"
Um jedoch die Kompatibilität mit der umgebenden
"//div[@class='elements']/button[contains(., 'Button text')]"
So führen Sie die Klickaktion aus:
const [button] = await page.$x("//div[@class='elements']/button[contains(., 'Button text')]");
if (button) {
await button.click();
}
Erklärung:
Mit .contains(. , 'Text') anstelle von .contains(text(), 'Text') Der XPath-Ausdruck stellt sicher, dass er untergeordnete Knoten einschließt und somit Textknoten tiefer in der Elementstruktur nicht ausschließt.
Das obige ist der detaillierte Inhalt vonWie klicke ich mit Puppeteer auf ein Element basierend auf Textinhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!