google-chrome - GMail 阻止通过自动化(Selenium)登录
问题描述
我正在使用 selenium 在 Web 应用程序中自动执行邮件验证过程。我已经有一个脚本可以登录 gmail 并阅读该帐户收到的激活邮件。该脚本直到昨天都可以正常工作,但是今天我遇到了问题。
问题的附加截图
如果使用 selenium 启动浏览器,Gmail 将不允许登录。说,
您正在使用 Google 无法识别的浏览器,或者以我们不支持的方式进行设置。
- 我尝试将 chromedriver 版本升级到 76.0.0,因为我使用的是 chrome 版本 76.0.3809.100(64 位)。(以前使用的 chromedriver 2.45)仍然存在问题。
- 验证即使我使用 Firefox 而不是 Chrome 进行自动化,也会出现此问题。
- 已验证浏览器中启用了 Javascript
- Gmail 不要求提供任何 OTP 或恢复邮件。它只是阻止我尝试通过自动化登录。但是我可以手动登录到同一个帐户。
使用的软件:“webdriverio”:“^4.14.1”,“wdio-cucumber-framework”:“^2.2.8”
任何帮助表示赞赏。
解决方案
经过反复试验,发现此问题仅在已从同一 App/IP/设备创建多个 gmail 帐户的情况下发生。如果它们是由自动化框架/扩展程序启动的,谷歌会以某种方式标记这些帐户并阻止它们。
临时解决方案:
- 使用与其他设备不同的手机号码创建一个新的 GMail 帐户(不推荐)。
- 我们应该使用nodemailer zeolearn.com/magazine/sending-and-receiving-emails-using-nodejs 之类的变通方法 (如 Rahul L 建议的那样)
- 如果您担心只接收邮件,请自动化临时邮件提供商,例如Guerilla Mail或10 Minute Mail
我的拙见是完全避免自动化第三方邮件应用程序的 UI,因为您无法预测它们的 UI 和元素将如何变化。他们可能会出于安全目的阻止您启动,他们完全有权这样做!
推荐阅读
- arrays - Powershell - 解析列表中的重复项
- javascript - 如何使用 Vue i18n 库翻译 ITEM
- java - 处理对象映射器异常和缺少返回语句
- flutter - 无法在 Flutter 中加载资产
- reactjs - 使用 REACT TSX 上的 OnClick 事件更改状态
- android - 弹出到全局操作的图形 startDestination 片段 - Android 导航组件
- windows - 无法编译 Rust 程序:LNK1181:无法打开输入文件 'C:\\Program.obj'
- hadoop - 我们可以使用 Sqoop2 导入仅创建文件而不创建 HIVE 表等吗
- ios - 组合 CIImages,使一个居中且在另一个上方具有相同的宽度
- c# - System.Version的序列化和反序列化使用Newtonsoft,dotnet core 2.2 vs dot net core 3.1