web-dev-qa-db-ja.com

解凍された拡張機能のロードは管理者によって無効にされています

Webdriverスクリプトを実行すると、次のメッセージを含む確認ダイアログボックスが表示されます。

拡張機能の読み込みエラー

「C:\ Users\username\AppData\Local\Temp\scoped_dir6312_32763\internal」から拡張機能をロードできませんでした。解凍された拡張機能のロードは、管理者によって無効にされています。

再試行しますか?

はい・いいえ

[はい]をクリックすると、テストが実行されます。

このダイアログボックスが表示される理由はわかりませんが、

下記の回避策を試しましたが、どちらも機能していません:

  1. chromeドライバを最新バージョンに置き換えました。
  2. 私のスクリプトに以下のコードを追加しました:

    ChromeOptions options = new ChromeOptions();
    options.addArguments("no-sandbox");
    options.addArguments("disable-extensions");
    driver = new ChromeDriver(options);
    

以下は私のテスト方法です:

public void Login() throws IOException{
    test = extent.startTest("Login");
    signInPage = new SignInPage(driver);
    signInPage.enterMailId();   
    String screenShotPath = GetScreenShot.capture(driver, "enterMailId");
    test.log(LogStatus.PASS, "Email id is entered successfully: " + test.addScreenCapture(screenShotPath));
    signInPage.enterpwd();
    //test.log(LogStatus.INFO, "Password is entered successfully");
    screenShotPath = GetScreenShot.capture(driver, "enterpwd");
    test.log(LogStatus.PASS, "Password is entered successfully: " + test.addScreenCapture(screenShotPath));
    signInPage.clickOnLogin();
    test.log(LogStatus.PASS, "User logged in successfully");
}

以下は、ブラウザを呼び出すメソッドです。

private  void initChromeBrowser(){
    System.setProperty("webdriver.chrome.driver", userdir +"\\chromedriver.exe");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("test-type");
    options.addArguments("no-sandbox");
    //Fix for cannot get automation extension
    options.addArguments("disable-extensions");
    options.addArguments("start-maximized");
    options.addArguments("--js-flags=--expose-gc");         
    options.addArguments("disable-plugins");
    options.addArguments("--enable-precise-memory-info"); 
    options.addArguments("--disable-popup-blocking");
    options.addArguments("--disable-default-apps");
    options.addArguments("test-type=browser");
    options.addArguments("disable-infobars");
    driver = new ChromeDriver(options);
    launchApp();
}

ダイアログボックスを防ぐために、スクリプトに組み込む必要のあるものは他にありますか。

16
user7836878

useAutomationExtension機能をfalseに設定できます。

    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("useAutomationExtension", false);
    WebDriver driver = new ChromeDriver(options);

この機能は、Chrome Automation拡張機能をロードしません。そのため、 "拡張機能のロードに失敗しました"ポップアップは表示されません。

ただし、Chromeオートメーション拡張機能がないと、ウィンドウのサイズ変更/配置操作を実行できないことに注意してください。

お役に立てれば!

ソース: https://bugs.chromium.org/p/chromedriver/issues/detail?id=1749

10

ChromeDriver v2.29にアップグレードした後、この同じ問題が発生しました。 Chrome v58.0。未解決の問題のようです。 https://bugs.chromium.org/p/chromedriver/issues/detail?id=639#c26

YMMVのバージョンに応じて、私の場合、ChromeDriver v2.27にダウングレードする必要がありました。

5

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

拡張機能の読み込みエラー

「C:\ Users\username\AppData\Local\Temp\scoped_dir6312_32763\internal」から拡張機能をロードできませんでした。解凍された拡張機能のロードは、管理者によって無効にされています。

再試行しますか?

はい・いいえ

...拡張機能は管理者によって無効にされたため、ロードされなかったことを意味します。

Issue 1749:からのエクステンションのロードに失敗しました:...展開されていない拡張機能のロードは管理者によって無効にされていますChromeDriver使用Chromeオートメーション拡張機能ウィンドウのサイズ変更、ウィンドウの配置など、さまざまな機能を自動化する.

拡張機能のロードに失敗しました。 popupは、この拡張機能がロードされていないことを意味します。ポップアップを手動で閉じると、ブラウザは正常に動作し、ChromeDriverコマンドは期待どおりに機能し続けます。ただし、この場合、ウィンドウのサイズ変更またはウィンドウの再配置コマンドを実行しようとすると、unknown error: cannot get automation extensionとしてエラーがスローされます。

ChromeDriver v2.28組織がポリシーを拡張することを禁止している場合、ユーザーが次のように引数disable-extensionsを使用している制限を回避するために:

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
WebDriver driver = new ChromeDriver(options);

完璧に機能しました。

ChromeDriver v2.28以降、テストでdisable-extensionsフラグが渡されるたびにChromeDriver暗黙的に渡されますdisable-extensions-except順番にロードされるフラグ- Chrome自動化拡張機能。この拡張機能は、Chromedriverがウィンドウのサイズ変更とウィンドウの再配置操作を実行するのに役立ちます。

したがって、組織の管理ポリシーが拡張機能をブロックしている場合、ポップアップの表示から拡張機能をロードできませんでした:...展開された拡張機能のロードは予想される動作です。

この問題は ヘッドレスのSeleniumサポート に依存していました。

別の方法として、次のようにuseAutomationExtension機能をfalseに設定できます。

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
WebDriver driver = new ChromeDriver(options);

この機能は、ロードしないようにするのに役立ちますChrome Automation拡張およびFailed to load extensionポップアップは表示されません。ただし、Chromeオートメーション拡張機能を使用しないと、ウィンドウのサイズ変更/配置操作を実行できません。

現在、 ヘッドレスのSeleniumサポート 解決中ChromeDriverはこの拡張機能を必要としなくなり、このエラー/ポップアップは表示されないはずです。

解決

最も簡単な解決策は、最新バージョンのChromeDriverおよびChromeを次のいずれかで組み合わせて使用​​することです。

  • Chromeバージョン73を使用している場合は、ダウンロードしてくださいChromeDriver 73.0.3683.20
  • Chromeバージョン72を使用している場合は、ChromeDriver 2.46またはChromeDriver 72.0.3626.69をダウンロードしてください
  • Chromeバージョン71を使用している場合は、ChromeDriver 2.46またはChromeDriver 71.0.3578.137をダウンロードしてください
  • 古いバージョンのChromeについては、こちらをご覧ください discussion

代替案

他の選択肢は次のとおりです。

  • レジストリキーExtensionInstallWhitelistをホワイトリストに追加します
  • 文字列キーを含むレジストリキーExtensionInstallBlacklistを削除します1値と*
4
DebanjanB

_chrome://version/_に移動すると、コマンドの下に表示されます:

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-extensions --disable-extensions-except="C:\Users\Inno3\AppData\Local\Temp\scoped_dir80288_6333\internal" --disable-hang-monitor --disable-popup-blocking --disable-Prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --ignore-certificate-errors --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=12354 --safebrowsing-disable-auto-update --start-maximized --test-type=webdriver --use-mock-keychain --user-data-dir="C:\Users\Inno3\AppData\Local\Temp\scoped_dir80288_30914" --flag-switches-begin --flag-switches-end data:,

これがエラーをスローする理由です。エラーが発生する理由はわかりません。ユーザーポリシーまたはChromeアップデート?

_--disable-extensions-except="C:\Users\Inno3\AppData\Local\Temp\scoped_dir80288_6333\internal"_

この引数はSeleniumによって追加されたと思います。Seleniumに追加しないように指示するには、次のコマンドが必要です。

C#の場合:

_chromeOptions = OpenQA.Selenium.Chrome.ChromeOptions();
chromeOptions.AddAdditionalCapability("useAutomationExtension", false);
river = new ChromeDriver(chromeOptions);
launchApp();
_

Javaの場合:

_chromeOptions.AddAdditionalCapability("useAutomationExtension", false)
_
2
wwjih123

以下のコードは私のために正常に動作していますchromeドライバ2.41およびブラウザバージョン68.0.3440.84

public class patCheck {

  WebDriver driver;

  @Test
  public void f() {

      System.setProperty("webdriver.chrome.driver", "C:\\Users\\shirish.nagar\\Work\\Selenium\\Web\\Drivers\\chromedriver.exe");

      ChromeOptions options = new ChromeOptions();
      options.setExperimentalOption("useAutomationExtension", false);
      driver = new ChromeDriver(options);

      driver.manage().window().maximize();
      driver.get("https://www.google.com");
  }
}

「管理者によって無効化された拡張機能の読み込み」のポップアップなしでchromeブラウザが正常に呼び出されます

1
Shirish Nagar
    ChromeOptions options = new ChromeOptions();
    System.setProperty("webdriver.chrome.driver", "C:\\drivers\\chromedriver.exe");

    options.setExperimentalOption("useAutomationExtension", false);
    driver = new ChromeDriver(options);
1
Roman Torskyi
//Set the system property for chrome browser location
                                System.setProperty("webdriver.chrome.driver", Global.sChromeDriverPath);
                                //Set the Chrome capabilities
                                ChromeOptions options = new ChromeOptions();
                            options.addArguments("test-type");
                            options.addArguments("start-maximized");
                            options.addArguments("--js-flags=--expose-gc");
                            options.addArguments("--enable-precise-memory-info");
                            options.addArguments("--disable-popup-blocking");
                            options.addArguments("--disable-default-apps");
                            options.addArguments("--enable-automation");
                            options.addArguments("test-type=browser");
                            options.addArguments("disable-infobars");
                            options.addArguments("disable-extensions");
                            options.setExperimentalOption("useAutomationExtension", false);
                            Global.driver = new ChromeDriver(options);
1
Srihari

以下のコードは私のために働く:

UseAutomationExtensionをfalseに設定します

options.setExperimentalOption("useAutomationExtension", false);

完全なコード:

    System.setProperty("webdriver.chrome.driver", "C:\\Selenium Drivers\\chromedriver.exe");
    ChromeOptions options = new ChromeOptions();

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setAcceptInsecureCerts(true);
    options.merge(capabilities);
    options.addArguments("--test-type");
    options.addArguments("start-maximized");
    options.addArguments("--js-flags=--expose-gc");
    options.addArguments("--enable-precise-memory-info");
    options.addArguments("--disable-popup-blocking");
    options.addArguments("--disable-default-apps");
    options.addArguments("--enable-automation");
    options.addArguments("disable-extensions");
    options.setExperimentalOption("useAutomationExtension", false);
    options.addArguments("--disable-dev-shm-usage");
    options.addArguments("--no-sandbox");
    options.addArguments("disable-infobars");
    driver = new ChromeDriver(options);
    driver.get("https://www.google.com/");
0
Shubham Jain

WindowsレジストリのChromeブラックリストの*エントリを削除するなど、多くのことを試してみました(これは、企業グループポリシーによって週に数回元に戻されるため、痛みを伴うハックです)。次のコードでは、「エラー読み込み拡張機能」ポップアップが表示されなくなりました。

${options}=    Evaluate    sys.modules['Selenium.webdriver'].ChromeOptions()    sys, Selenium.webdriver
Call Method    ${options}    add_argument    --start-maximized
Call Method    ${options}    add_experimental_option  useAutomationExtension  ${False}
Create WebDriver    Chrome    chrome_options=${options}
0
minihunter97