javascript - 不考虑 puppeteer 输入字段
问题描述
我正在使用 puppeteer 登录网站:
await page.$eval('input[name="email"]', el => el.value = 'my_email');
await page.$eval('input[name="password"]', (el, my_value) => {el.value = my_value}, my_password);
await page.click('button[type="submit"]');
电子邮件和密码输入正确,但是当脚本单击“提交”按钮时,就好像在“电子邮件”和“密码”字段中没有输入任何内容(我收到一条错误消息“此字段是必需的。 “ 对彼此而言)。
所以网站认为输入字段仍然是空的。这可能是什么原因造成的?
解决方案
该页面必须在某些输入事件上执行某些操作,例如keypress
. 你可以type
改用。这将模拟用户输入。
await page.type('input[name="email"]', 'my_email');
await page.type('input[name="password"]', my_password);
await page.click('button[type="submit"]');
推荐阅读
- vue.js - VueJs/Axios - 通过 API 调用在浏览器中下载 pdf 文件
- mysql - 在 python 3 中使用列表变量并基于它删除文件夹
- ios - iOS 13 上的 EXC_BAD_ACCESS
- swift - 如何在 searchBar 中过滤整个对象
- .net - 如何正确管理和访问 webdriver 实例以避免并行执行测试出现问题?
- html - 使用 IHtmlContent 和 IHtmlHelper 编写类
- r - Databricks 上的 Sparklyr - 在具有许多 NaN 值的 sparklyr 数据帧上逐行取多列的平均值
- php - 如何在 php 脚本中打印特定的 json 数组值?
- android - 由于新的安全性,Catalina 升级后无法使用旧的 NDK (android-ndk-r17c)
- json - ClickFunnels API 每页仅显示 10 个联系人