由于“此浏览器或应用可能不安全,”无法使用Selenium自动化登录google

问题描述

此错误消息…

This browser or app may not be secure.
Try using a different browser. If you’re already using a supported browser, you can refresh your screen and try again to sign in.

…表示 WebDriver 无法验证 即 会话。


潜在原因和解决方案

导致此错误的原因可能有多种,如下所示:

在这些情况下,相应的解决方案是:


tl; 博士

几个相关的事件文档:

解决方法

我正在尝试使用selenium登录到google,但不断收到错误消息“此浏览器或应用可能不安全”。

我用来登录的功能是:

async function loginToChrome(driver,username,password) {
  await driver.get("https://accounts.google.com/signin");
  await driver.sleep(1000);
  let email_phone = await driver.findElement(
    By.xpath("//input[@id='identifierId']")
  );
  await email_phone.sendKeys(username);
  await driver.findElement(By.id("identifierNext")).click();
  await driver.sleep(1000);

  let passEl = await driver.findElement(By.xpath("//input[@name='password']"));
  await passEl.sendKeys(password);
  await driver.findElement(By.id("passwordNext")).click();
  await driver.sleep(1000);
}

我尝试使用chrome和firefox网络驱动程序,但均无法正常工作。我也尝试过这样做.excludeSwitches(['enable- automation'])也没有帮助。

这使我认为登录页面也许可以检测到我在自动化环境中运行。我尝试过这种解决方案,该解决方案使该应用程序[无法在Web驱动程序中运行:网站可以检测到您何时在chromedriver中使用selenium?
我也调查了User-Agent看是否是问题所在,但是发现它与我的常规Chrome相同。

所有这些都没有奏效,这使我陷入困境。我已经看到了一些解决方案,这些解决方案说使用正常安装的chrome中已经创建的用户个人资料,但这不适用于我的用例。

有没有人找到解决方案?我一直在寻找时间,空手而归。

编辑:
似乎最近这已经引起了很多关注。我找到了一个解决方案,使我可以继续使用自动化客户端,而不会遇到太多问题。切换到Puppeteer。查看以下软件包:

    "puppeteer","puppeteer-extra","puppeteer-extra-plugin-stealth"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...