web-dev-qa-db-ja.com

Selenium Googleログインブロック

Googleログインに問題があります。アカウントにログインしたいのですが、自動化ドライバーのログインは許可されていません。

解決策を探しています。通常のFirefox/ChromeのCookieを取得してChromeDriver/GeckoDriverにロードすることは可能ですか?これで解決できると思いました。しかし、それが可能かどうかはわかりません。

解決策を探しています。

enter image description here

また、このための簡単な解決策を追加したいと思います。私は古い確認済みアカウントの1つを使用してこの問題を解決しました。それもあなたのための迅速な解決策になる可能性があります。

8

このエラーメッセージ...

This browser or app may not be secure

...WebDriverインスタンスがBrowsing Contextを認証できなかったことを意味します/ ieブラウザセッション。


このブラウザまたはアプリは安全でない可能性があります

このエラーは、次のようなさまざまな要因により発生する可能性があります。


解決

これらの場合、それぞれの解決策は次のようになります。

「このブラウザまたはアプリは安全でない可能性がある」ため、SeleniumオートメーションでGoogleにサインインできない で詳細な説明を見つけることができます。


ディープダイブ

ただし、アカウントを保護するために、Web Browsersは一部のブラウザからのサインインを許可しない場合があります。 Googleは、次のようなブラウザからのログインを停止する場合があります。

  • JavaScriptをサポートしていないか、JavaScriptがオフになっています。
  • AutomationExtension、安全でない、またはサポートされていない拡張機能を追加します。
  • 自動化テストフレームワークを使用します。
  • 別のアプリケーションに埋め込まれている。

解決

これらの場合、さまざまなソリューションがあります。

  • JavaScriptをサポートするブラウザーを使用します。

  • Chrome

  • Safari

  • Firefox

  • オペラ

  • Internet Explorer

  • エッジ

  • Web BrowsersでJavaScriptをオンにします。サポートされているブラウザを使用しているにもかかわらずサインインできない場合は、JavaScriptをオンにする必要があるかもしれません。

  • それでもサインインできない場合は、AutomationExtension/unsecure/unsupported拡張機能がオンになっているため、次のようにオフにする必要がある場合があります。

      public class browserAppDemo 
      {
          public static void main(String[] args) throws Exception 
          {
              System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
              ChromeOptions options = new ChromeOptions();
              options.addArguments("start-maximized");
              options.setExperimentalOption("useAutomationExtension", false);
              options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
              WebDriver driver =  new ChromeDriver(options); 
              driver.get("https://accounts.google.com/signin")
              new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='identifierId']"))).sendKeys("gashu");
              driver.findElement(By.id("identifierNext")).click();
              new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='password']"))).sendKeys("gashu");
              driver.findElement(By.id("passwordNext")).click();
              System.out.println(driver.getTitle());
          }
      }
    
  • あなたはいくつかの関連する議論を見つけることができます:

  • Java でSelenium webdriverを使用したGmailログイン

  • 新しいajaxログインフォームからGoogleアカウントにログインするためのSeleniumテストスクリプト


その他の考慮事項

最後に、一部の古いブラウザバージョンはサポートされていない可能性があるため、次のことを確認してください。

1
DebanjanB

私は同じ問題を抱えており、その解決策を見つけました。使ってます

1)Windows 10 Pro

2)Chromeバージョン83.0.4103.97 (Official Build) (64-bit)

3)セレンChromeDriver 83.0.4103.39

Googleページを開く簡単なC#コード

var options = new ChromeOptions();
options.addArguments(@"user-data-dir=c:\Users\{username}\AppData\Local\Google\Chrome\User Data\");
IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver();
driver = new ChromeDriver(Directory.GetCurrentDirectory(), options);
driver.Url = "https://accounts.google.com/";
Console.ReadKey();

ここでの核となる問題Seleniumドライバーを使用する場合はログインできませんが、すでにGoogleアカウントにログインしているプロファイルを使用できます

Chromeストアプロファイルがどこにあるかを見つけて、"user-data-dir"オプション。

PS。 {username}を実際のアカウント名に置き換えます。

Linuxでは、ユーザープロファイルは"~/.config/google-chrome"

2
Duke

数時間の試行錯誤の末、うまくいったことを試しました。

構成に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ログインを続行することをお勧めします。

1
Yinka Alabi
  1. ブラウザにCookieエディタを追加します。

    2.アカウントのCookie情報をブラウザーに追加します。

アカウントが自動的に開きます。

Google fixed this method :( :(
0