javascript - Puppeteer 无法点击 gmail 中的 div
问题描述
我正在尝试在这里单击 gmail 上的 3 个点: 1
然后点击“全部标记为已读”:2
我点击三个点很好。
但是,我无法将所有标记都单击为已读。
当我通过以下方式检查元素时,我可以选择它:div[class="J-M aX0 aYO jQjAxd"] > div[class="SK AX"] > div[class="J-N"]:nth-child(1)
但是我不能点击它
我努力了:
一个普通的 .click 选择器
.focus 然后 .click 选择器
将鼠标移到选择器上,然后单击鼠标所在的位置
点击之前的艰难等待
不同的选择器
ETC
var selector = 'span[class="asa bjy"]' await cursor.move(selector) await cursor.click() await page.waitForNavigation({ waitUntil: "networkidle2" })`
前面的部分很好(使用幽灵光标),它点击了 3 个点。但以下不起作用
await page.waitFor(1500)
var selector = 'div[class="J-M aX0 aYO jQjAxd"] > div[class="SK AX"] > div[class="J-N"]:nth-child(1)'
await page.waitForSelector(selector);
await page.click(selector);
欢迎任何建议。如果我需要添加更多细节,请告诉我。
解决方案
不确定您要做什么,但是通过 puppeteer 阅读/编写电子邮件比使用 Gmail 公共 API 慢得多:https ://developers.google.com/gmail/api 。使用 API 将确保您的代码始终如一地运行,并且不会在下次谷歌更新其 HTML 中的一些杂项 UI 元素时中断。
推荐阅读
- java - 使用 IAM 用户的访问密钥为第三方 AWS 账户代入角色失败
- parsing - 仅在部分 ANTLR 语法中显式处理换行符
- environment-variables - 如何让 MPI 工作节点读取自己的环境变量?
- hadoop - 如何在 Windows 10 上设置 Hive 和 Hadoop?
- git - 管理多个开发人员对 XML 配置文件进行大量更改的 Git 工作流
- rspec - Capybara 警告“检查预期的 nil 文本”
- javascript - JQuery/JavaScript 如何将字母“s”切换到时间段列表?
- saxon - 撒克逊 - 我们可以查询它是否使用模式
- excel - 如何在起诉 VBA 的 Outlook 电子邮件中添加 PDF 附件?
- angular - 比较两个 Observable 的值并返回一个 Observable