使用 Puppeteer 按文本单击元素
在 Puppeteer 中,可以使用 XPath 表达式来根据文本内容单击特定元素。
如何单击带有文本的元素
要单击带有特定文本的元素,请使用以下 XPath 表达式:
const [element] = await page.$x("//element[contains(., 'text')]"); await element.click();
替换“元素" 带有适当的标签名称(例如,“button”或“a”),“text”带有所需的子字符串来匹配。例如:
//button[contains(., 'Button text')]
注意事项
//div[@class='container']/button[contains(., 'Button text')]
XPath 与 Text()
XPath 表达式包含(., ' Text') 使用元素的子节点来匹配指定的文本。相反, contains(text(), 'Text') 仅考虑元素的文本内容。
示例
给定以下 HTML:
<div class="elements"> <button>Button text</button> <a href="#">Href text</a> <div>Div text</div> </div>
要单击按钮,请使用:
const [button] = await page.$x("//div[@class='elements']/button[contains(., 'Button text')]"); await button.click();
以上是如何使用 Puppeteer 和 XPath 根据文本内容单击元素?的详细内容。更多信息请关注PHP中文网其他相关文章!