我正试图用selenium登录谷歌,但我一直收到一个错误:“这个浏览器或应用程序可能不安全。”
我用来登录的功能是:
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);
}
这和https://stackoverflow.com/questions/59433453/unable-to-log-into-google-account-in-selenium-chrome-driver和https://stackoverflow.com/questions/59276975/couldnt-sign-you-in-this-browser-or-app-may-be-insecure-python-selenium-chrome
我试过同时使用chrome和Firefox web驱动程序,但都不起作用,我也试过做。
这让我想到,也许登录页面可以检测到我正在自动环境中运行。我尝试了这个解决方案,它可以隐藏应用程序在网络驱动程序中运行:网站可以检测到你何时使用chrome驱动程序使用硒吗?
我还研究了
User-Agent
,看看这是否是问题所在,但我发现它与我的常规chrome完全相同。
所有这些都没有奏效,这让我陷入困境。我看到过一些解决方案,它们说使用一个已经创建的用户配置文件,这个用户配置文件来自你的chrome的正常安装,但这对我的用例不起作用。
有人找到解决办法了吗?我已经找了好几个小时,结果空手而归。
编辑:这似乎最近受到了很多关注。我找到了一个解决方案,使我能够继续使用自动客户端,而不会出现太多问题。换成木偶演员。看看这些包:
"puppeteer",
"puppeteer-extra",
"puppeteer-extra-plugin-stealth"
编辑2:我最近看到这个得到了很多关注。我找到了我最终用来登录的代码。我用木偶代替硒来做这件事
async function login(
page: Page,
username: string,
password: string,
backup: string
) {
await page.goto("https://accounts.google.com/");
await page.waitForNavigation();
await page.waitForSelector('input[type="email"]');
await page.click('input[type="email"]');
await page.waitForNavigation();
//TODO : change to your email
await page.type('input[type="email"]', username);
await page.waitForSelector("#identifierNext");
await page.click("#identifierNext");
await page.waitFor(1000);
await page.waitForSelector('input[type="password"]');
await page.click('input[type="password"]');
await page.waitFor(500);
//TODO : change to your password
await page.type('input[type="password"]', password);
await page.waitForSelector("#passwordNext");
await page.click("#passwordNext");
await page.waitForNavigation();
}
以下是对我有用的:
我用的是木偶演员,但我敢打赌任何自动脚本都是一样的。
必须有userDataDirectory,以便浏览器可以使用相同的存储信息。
您必须首先使用head less: false
运行脚本,以便打开浏览器。如果您尝试在当前选项卡(自动导航的选项卡)上登录,那么每次登录尝试都会出现错误。
诀窍(对我来说)是打开一个新标签,手动导航,再试一次。
下次运行脚本时,无需登录。
经过几个小时的反复试验,我尝试了一些对我有效的方法。
在我的配置中添加args:['--disable-web-Security','--user-data-dir','--allable-runing-insecure-content']
解决了这个问题。
后来我意识到,这并没有帮到我,因为我尝试了另一封电子邮件,但没有成功。经过一些观察,我发现了一些其他的东西,这已经被尝试和测试过了。
使用自动化:
转到https://stackoverflow.com/users/login选择使用Google策略登录输入Google用户名和密码登录Stackoverflow转到https://gmail.com(或任何您想访问的Google应用程序)
在坚持一整天(大约24小时)之后,尝试直接自动登录gmail(或任何你想访问的谷歌应用程序)。。。我至少有另外两个人成功地做到了这一点。PS-您可能希望继续stackoverflow登录,直到您至少收到验证码请求,因为我们也都经历了这一阶段。
下面的工作我以及: 1.尝试登录stackoverflow与您的谷歌帐户2.一旦登录,转到电子邮件
以下是解决方案
WebDriver driver;
System.setProperty("webdriver.chrome.driver", "chromeDriver/chromedriver.exe");
driver = new ChromeDriver();
GeneralClass te = new GeneralClass ();
driver.get("https://accounts.google.com/signin/oauth/identifier?client_id=717762328687-iludtf96g1hinl76e4lc1b9a82g457nn."
+ "apps.googleusercontent.com&as=JS6BM8cjL-8j9votansdkw&destination=https%3A%2F%2Fstackauth"
+ ".com&approval_state=!ChRoYWVvLUlNMk5hSXJWUGlaSVl2WBIfc3lSa0lueENpb29lSU5vbEVpbVNxcUZGaGNkSEJoYw%E2%88%99AJDr988AAAAAXlBKc7PzEomxSzgNqd4wLptVlf0Ny3Qx&oauthgdpr=1&xsrfsig=ChkAeAh8T8JNDxCf2Zah5fb_rQ55OMiF8KmMEg5hcHByb3ZhbF9zdGF0ZRILZGVzdGluYXRpb24SBXNvYWN1Eg9vYXV0aHJpc2t5c2NvcGU&flowName=GeneralOAuthFlow");
te.waitingForElementSendingKey(driver, By.id("identifierId"), "XXXXXXXX@gmail.com");
te.waitingForElementForClickOnly(driver, By.id("identifierNext"));
te.waitingForElementSendingKey(driver,By.name("password"), "PASSSWORD");
te.waitingForElementForClickOnly(driver, By.id("passwordNext"));
Thread.sleep(1500);
driver.get("https://mail.google.com/mail/u/0/#inbox");
所以我一直在尝试通过selenium访问我的gmail或Google Colab笔记本。我没有通过电子邮件和密码进行身份验证,而是使用已保存的Google Chrome配置文件启动chromedriver,但它会抛出以下内容: 我已经尝试了以前行之有效的每一个解决方案,但现在不起作用了,我尝试的一些解决方案有: 禁用双因素身份验证 允许不太安全的应用程序访问 禁用我知道的每个标志,让网站检测到该网
我在selenium上遇到了这个问题,我尝试运行下面的代码,但出现了以下错误:https://i.postimg.cc/VNd3F4rm/u2zrn.jpg . 我“登录谷歌”的图片:https://i.stack.imgur.com/w3POX.png(如你所见,“应用程序密码”在我看来并不存在) 我已经尝试禁用帐户设置中的“不太安全的应用”部分,并检查JavaScipt是否已激活,但没有成功。
我必须使用selenium脚本登录gmail帐户,但我收到了错误消息 正如从其他来源读到的,谷歌不允许使用自动化脚本登录 机器:MacOS编程语言:Java 有人知道怎么解决吗?
我试过用Gmail或任何谷歌服务登录,但它显示以下“此浏览器或应用程序可能不安全”消息: 我还尝试在acc中启用不太安全的应用程序,但没有成功。然后我建立了一个新的谷歌账户,它和我一起工作。但不是和我以前的acc。 我该怎么解决这个问题 如何在正常的chrome浏览器(而不是由自动化软件控制的浏览器)中打开selenium<这是我的代码
问题内容: 我正在尝试使用selenium登录到google,但不断收到错误消息“此浏览器或应用可能不安全”。 我用来登录的功能是: 我尝试使用chrome和firefox网络驱动程序,但均无法正常工作。我也尝试过这样做也没有帮助。 这使我认为登录页面也许可以检测到我在自动化环境中运行。我尝试过这种解决方案,该解决方案使该应用程序[无法在Web驱动程序中运行:网站可以检测到您何时在chromedr
谷歌浏览器可以当问其他页面,但是无法登录账号,打开会显示这个,大佬们如何解决?