web-dev-qa-db-fra.com

Impossible de se connecter à Google avec l'automatisation Selenium en raison de «ce navigateur ou cette application n'est peut-être pas sécurisé».

J'essaie de me connecter à Google avec Selenium et je reçois toujours le message d'erreur "Ce navigateur ou cette application n'est peut-être pas sécurisé".

La fonction que j'utilise pour me connecter est:

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);
}

C'est le même problème que https://stackoverflow.com/questions/59433453/unable-to-log-into-google-account-in-Selenium-chrome-driver et https : //stackoverflow.com/questions/59276975/couldnt-sign-you-in-this-browser-or-app-may-be-insecure-python-Selenium-chrome

J'ai essayé d'utiliser à la fois les pilotes Web chrome et Firefox et les deux ne fonctionnent pas. J'ai également essayé de faire .excludeSwitches(['enable-automation']), ce qui n'a pas aidé non plus.

Cela m'a fait penser que la page de connexion pourrait peut-être détecter que je fonctionnais dans un environnement automatisé. J'ai essayé cette solution qui cacherait que l'application s'exécute dans un pilote Web: n site Web peut-il détecter lorsque vous utilisez Selenium avec chromedriver?

J'ai également examiné le User-Agent Pour voir si c'était le problème, mais ce que j'ai trouvé, c'est qu'il est identique à mon chrome one).

Tout cela n'a pas fonctionné ce qui me laisse coincé. J'ai vu des solutions qui disent d'utiliser un profil utilisateur déjà créé à partir de votre installation normale de Chrome, mais cela ne fonctionnerait pas pour mon cas d'utilisation.

Quelqu'un a-t-il trouvé la solution à cela? Je cherche depuis des heures et suis venu les mains vides.

EDIT: Il semble que cela ait beaucoup attiré l'attention récemment. J'ai trouvé une solution qui m'a permis de continuer à utiliser un client automatisé sans avoir trop de problèmes. Passer à Puppeteer. Regardez dans ces packages:

    "puppeteer",
    "puppeteer-extra",
    "puppeteer-extra-plugin-stealth"
3
KolCrooks

Les éléments suivants me fonctionnent également: 1. essayez de vous connecter au stackoverflow avec votre compte Google 2. une fois connecté, allez à l'e-mail

voici la solution

     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"), "[email protected]");
     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");

Merci

1
Bablu Banik

Une solution de contournement qui a fonctionné pour moi consiste à créer un compte Google dans l'instance chrome lancée par le pilote Web. L'utilisation de ce compte nouvellement créé fonctionne pour moi, mais je ne peux pas dire quelle est exactement la différence entre lui et d'autres comptes Google.

0
Mohamed Said

Je viens d'essayer quelque chose qui a fonctionné pour moi après plusieurs heures d'essais et d'erreurs.

Ajouter args: ['--disable-web-security', '--user-data-dir', '--allow-running-insecure-content' ] à ma configuration a résolu le problème.

J'ai réalisé plus tard que ce n'était pas ce qui m'a aidé alors que j'essayais avec un autre e-mail et cela n'a pas fonctionné. Après quelques observations, j'ai compris autre chose et cela a été essayé et testé.

Utilisation de l'automatisation :

Accédez à https://stackoverflow.com/users/login Sélectionnez Se connecter avec la stratégie Google Entrez le nom d'utilisateur et le mot de passe Google Connectez-vous à Stackoverflow Accédez à https://gmail.com (ou quelle que soit l'application Google à laquelle vous souhaitez accéder)

Après avoir fait cela de manière cohérente pendant une journée entière (environ 24 heures), essayez d'automatiser votre connexion directement à gmail (ou à l'application Google à laquelle vous souhaitez accéder) directement ... J'ai eu au moins deux autres personnes qui l'ont fait avec succès. PS - Vous voudrez peut-être continuer avec la connexion stackoverflow jusqu'à ce que vous obteniez au moins une demande de captcha, car nous avons tous traversé cette phase également.

0
Yinka Alabi