最初のステップとして、Gmailアカウントにログインする必要があるSeleniumサービスがあります。この機能は数週間前に機能していましたが、突然ログインが失敗し始め、ブラウザにこのエラーが表示され、セレンのChromeとFirefoxの両方のドライバで試しました-
このエラーは、seleniumサービスが電子メール、パスワードを挿入し、サインインボタンをクリックした後に発生します。同様のエラーがGoogleサポートフォーラム(https://support.google.com/accounts/thread/10916318?hl=en)でも報告され、「Googleはログインフローに自動化ツールの検出を導入しているようです!」しかし、このスレッドには解決策はありません。
役に立つかもしれないその他の詳細-
Seleniumで開いたブラウザで、Googleアカウントに手動でログインできません。- しかし、Google Chromeアプリケーションでこれらのアカウントに手動でログインできます。
コードを確認する必要がある場合はお知らせください。ここに投稿します。前もって感謝します!
参照する追加サンプルコードを編集します。
public void loginGoogleAccount(String emailId, String password) throws Exception {
ChromeOptions options = new ChromeOptions();
options.addArguments("--profile-directory=Default");
options.addArguments("--whitelisted-ips");
options.addArguments("--start-maximized");
options.addArguments("--disable-extensions");
options.addArguments("--disable-plugins-discovery");
WebDriver webDriver = new ChromeDriver(options);
webDriver.navigate().to("https://accounts.google.com");
Thread.sleep(3000);
try {
WebElement email = webDriver.findElement(By.xpath("//input[@type='email']"));
email.sendKeys(emailId);
Thread.sleep(1000);
WebElement emailNext = webDriver.findElement(By.id("identifierNext"));
emailNext.click();
Thread.sleep(1000);
WebDriverWait wait = new WebDriverWait(webDriver, 60);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("identifierNext")));
Thread.sleep(3000);
WebElement passwordElement = webDriver.findElement(By.xpath("//input[@type='password']"));
passwordElement.sendKeys(password);
Thread.sleep(1000);
WebElement passwordNext = webDriver.findElement(By.id("passwordNext"));
passwordNext.click();
} catch (Exception e) {
LOGGER.info(String.format("No email/password field available or it is already logged in: [%s]: ",
e.getMessage()));
}
}