我正在尝试使用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'])也没有帮助。
.excludeSwitches(['enable- automation'])
这使我认为登录页面也许可以检测到我在自动化环境中运行。我尝试过这种解决方案,该解决方案使该应用程序[无法在Web驱动程序中运行:网站可以检测到您何时在chromedriver中使用selenium? 我也调查了User-Agent看是否是问题所在,但是发现它与我的常规Chrome相同。
User-Agent
所有这些都没有奏效,这使我陷入困境。我已经看到了一些解决方案,这些解决方案说使用正常安装的chrome中已经创建的用户个人资料,但这不适用于我的用例。
有没有人找到解决方案?我一直在寻找时间,空手而归。
编辑: 似乎最近这已经引起了很多关注。我找到了一个解决方案,使我可以继续使用自动化客户端,而不会遇到太多问题。切换到Puppeteer。查看以下软件包:
"puppeteer", "puppeteer-extra", "puppeteer-extra-plugin-stealth"
此错误消息…
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 无法验证 浏览上下文, 即 浏览器 会话。
导致此错误的原因可能有多种,如下所示:
在这些情况下,相应的解决方案是:
几个相关的事件文档: