gpt4 book ai didi

javascript - 由于 "This browser or app may not be secure.",无法使用 selenium 自动化登录谷歌

转载 作者:行者123 更新时间:2023-12-04 00:42:38 28 4
gpt4 key购买 nike

我正在尝试使用 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 网络驱动程序,但都不起作用。
我也试过做 .excludeSwitches(['enable-automation'])这也没有帮助。
这让我觉得也许登录页面可以检测到我在自动化环境中运行。
我尝试了这个解决方案,它可以隐藏应用程序正在 Web 驱动程序中运行: Can a website detect when you are using selenium with chromedriver?
我还查看了 User-Agent看看这是否是问题,但我发现它与我的常规 chrome 相同。
所有这一切都没有奏效,这让我陷入了困境。我已经看到解决方案说使用您正常安装的 chrome 中已经创建的用户配置文件,但这不适用于我的用例。
有没有人找到解决方案?我一直在寻找几个小时,却空手而归。
编辑:
看来这件事最近引起了很多关注。我找到了一个解决方案,让我可以继续使用自动化客户端而不会遇到太多问题。切换到 Puppeteer。
查看这些软件包:
    "puppeteer",
"puppeteer-extra",
"puppeteer-extra-plugin-stealth"
编辑2:
我看到这最近引起了很多关注。我找到了我最终用来登录的代码。我使用 puppeteer 而不是 selenium 来做到这一点
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();
}

最佳答案

以下内容也适用于我:
1.尝试用你的google账号登录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");

谢谢

关于javascript - 由于 "This browser or app may not be secure.",无法使用 selenium 自动化登录谷歌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59514049/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com