Seleniumでgoogleにログインしようとすると、「このブラウザーまたはアプリは安全でない可能性があります」というエラーが表示され続けます。
ログインに使用する関数は次のとおりです。
_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ドライバーの両方を使用してみましたが、どちらも機能しません。.excludeSwitches(['enable-automation'])
も試してみましたが、これも役に立ちませんでした。
これにより、サインインページで自動環境で実行していることが検出される可能性があると思いました。アプリがWebドライバーで実行されていることを隠すこのソリューションを試しました: ChromeドライバーでSeleniumを使用しているときにWebサイトが検出できますか?
私は_User-Agent
_も調べて、それが問題であるかどうかを確認しましたが、通常のchrome oneと同じであることがわかりました。
これはすべてうまくいきませんでした。 Chromeの通常のインストールから既に作成されているユーザープロファイルを使用するという解決策を見てきましたが、これは私の使用例では機能しません。
誰かがこれに対する解決策を見つけましたか?私は何時間も探していて、手ぶらで出てきました。
編集:これは最近多くの注目を集めているようです。あまり問題なく自動クライアントを使い続けることができる解決策を見つけました。 Puppeteerに切り替えます。これらのパッケージを調べてください。
_ "puppeteer",
"puppeteer-extra",
"puppeteer-extra-plugin-stealth"
_
以下も同様に機能します: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"), "[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");
ありがとう
私のために働いた1つの回避策は、chrome Webdriverによって開始されたインスタンスでGoogleアカウントを作成することです。この新しく作成されたアカウントを使用するとうまくいきますが、正確に何が違うのかわかりません他のGoogleアカウント。
数時間の試行錯誤の末、うまくいったことを試しました。
構成にargs: ['--disable-web-security', '--user-data-dir', '--allow-running-insecure-content' ]
を追加すると問題が解決しました。
別のメールアドレスを試してみたがうまくいかなかったので、これは私には役に立たなかったことが後でわかった。いくつかの観察の後、私は何か他のものを見つけ出し、これは試みられ、テストされました。
オートメーションの使用:
https://stackoverflow.com/users/login に移動しますGoogle戦略でログインを選択しますGoogleのユーザー名とパスワードを入力しますStackoverflowにログインします https://gmail.com に移動します(またはアクセスしたいGoogleアプリ)
これを終日(約24時間)一貫して行った後、Gmail(またはアクセスしたいGoogleアプリ)への直接のログインを直接自動化してみてください...少なくとも2人が成功しました。 PS-全員が同じフェーズを通過したため、少なくともキャプチャ要求を受け取るまで、stackoverflowログインを続行することをお勧めします。