Ich habe einen Selenium-Dienst, der sich als erster Schritt bei meinem Google Mail-Konto anmelden muss. Diese Funktion hat vor ein paar Wochen funktioniert, aber plötzlich schlägt die Anmeldung fehl und ich sehe diesen Fehler im Browser, der sowohl in Chrome- als auch in Firefox-Treibern in Selen ausprobiert wurde.
Dieser Fehler tritt auf, nachdem der Selenium-Dienst die E-Mail-Adresse und das Kennwort eingegeben und auf die Anmeldeschaltfläche geklickt hat. Ein ähnlicher Fehler wurde auch im Google Support-Forum hier gemeldet - https://support.google.com/accounts/thread/10916318?hl=de . Sie sagten, dass "Google anscheinend die Erkennung von Automatisierungstools für ihren Anmeldefluss eingeführt hat!" In diesem Thread gibt es jedoch keine Lösung.
Einige andere Details, die nützlich sein könnten-
- Ich kann mich in den
von Selenium geöffneten Browsern nicht manuell bei Google-Konten anmelden . - Ich kann mich jedoch manuell bei diesen Konten in der Google Chrome-Anwendung anmelden.
Lassen Sie mich wissen, wenn Sie sich den Code ansehen müssen, ich werde ihn hier veröffentlichen. Danke im Voraus!
Bearbeiten Hinzufügen von Beispielcode zum Verweisen.
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()));
}
}