【问题标题】:Puppeteer: how to find element by textPuppeteer:如何按文本查找元素
【发布时间】:2020-11-05 10:10:09
【问题描述】:

我使用 Puppeteer 框架来自动化测试。 我需要根据文本找到一个元素:

await page.focus(//span[contains(text(), 'Name')]])

<span class="some_placeholder">Name</span>
<span class="some_placeholder">Phone Number</span>

但是在这种情况下会发生以下错误: “评估失败:DOMException:无法在文档''上执行'querySelector'不是一个有效的选择器..” span[class='name'] 成功找到了一些元素,但只需要一个元素。

focus() 接受 CSS 选择器,但不接受 contains() 或 text() 方法。

我应该如何正确编码搜索条件?

【问题讨论】:

标签: javascript puppeteer


【解决方案1】:

您可以将 XPath 与 page.$x() 一起使用,然后调用 elementHandle.focus()

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 2011-11-11
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多