首页 > 解决方案 > Puppeteer - 无法键入输入字段或单击按钮

问题描述

我正在使用 puppeteer 自动输入表单。我可以填写除电子邮件字段外的所有字段,也无法单击表单末尾的订阅按钮。下面是我的代码。FNAME 有效,但#mce-EMAIL 无效(即使我尝试 page.type)。同样由于某种原因,无法找到订阅按钮的选择器。下面也是与此代码相关的 DOM 部分的屏幕截图。

我的代码可能无法正常工作的任何原因?

  await page.$eval('#mce-EMAIL', el => el.value = 'test@example.com');
  await delay(500);
  await page.type('input[name="FNAME"]', MyData[row].fname)
  await delay(500);


  await page.click('#mc-embedded-subscribe')

DOM

标签: buttontypespuppeteerselector

解决方案


这类网站的问题在于,它的多个元素具有相同的 ID。一个糟糕的设计决定。

在此处输入图像描述

您需要使用正确的选择器。否则它仍然在填写一个隐藏的表格。

这是基于您提供的链接的正确选择器。

#mc_embed_signup_scroll #mce-EMAIL 

推荐阅读