【问题标题】:How to click a button by name or text with puppeteer?如何使用 puppeteer 按名称或文本单击按钮?
【发布时间】:2019-05-21 21:52:22
【问题描述】:

我是 puppeteer 的新手,一直试图点击 yahoo 上的某个按钮。我面临以下情况:

我尝试选择点击按钮如下:

const [button] = await page.$x("//button[contains(., 'OK')]");
if (button) {
   await button.click();
}

很遗憾没有成功。 我一般如何单击“确定”按钮?什么是检查按钮是否存在的解决方案。非常感谢您的帮助。

【问题讨论】:

    标签: node.js puppeteer


    【解决方案1】:

    在您的浏览器中,打开按钮所在的页面。 右键单击页面并选择“检查”。

    然后,从 DOM 代码中,右键单击按钮,然后选择“复制 > 复制 JS 路径”。

    这个选择器可以很容易地在 puppeteer 中使用。

    【讨论】:

    • 这个答案值得更多投票!对于像我这样正在努力开始使用 Puppeteer 的初学者来说,这真的让我前进了!
    • 这对我不起作用,因为 js 路径采用标签的 ID,每次重新加载页面时都会更改
    • 如果 ID 发生变化,您可能需要使用不同的方式来识别页面上的元素。也许:nth-child() 选择器?我不知道你的情况是什么,所以我不能提出更具体的方法。尝试针对您自己的情况提出问题,看看是否有人有更好的解决方案:)
    【解决方案2】:

    您可以使用名称属性作为名称的选择器:

    await page.waitForSelector('button[name="agree"]');
    await page.click('button[name="agree"]');
    

    【讨论】:

      猜你喜欢
      • 2017-12-09
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多