web-dev-qa-db-fra.com

Le chargement des extensions décompressées est désactivé par l'administrateur

Lorsque j'exécute mon script webdriver, une boîte de dialogue de confirmation contenant le message ci-dessous s'affiche:

Erreur de chargement de l'extension

Impossible de charger l'extension à partir de 'C:\Utilisateurs\nom d'utilisateur\AppData\Local\Temp\scoped_dir6312_32763\internal'. Le chargement des extensions décompressées est désactivé par l'administrateur.

Voulez-vous réessayer?

Oui Non

En cliquant sur "oui", les tests sont exécutés.

Je ne suis pas sûr de savoir pourquoi je reçois cette boîte de dialogue,

J'ai essayé les solutions de contournement mentionnées ci-dessous, mais aucune d'entre elles ne fonctionne:

  1. Remplacé chrome pilote avec la dernière version.
  2. Ajout du code ci-dessous dans mon script:

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

Ci-dessous ma méthode de test:

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

Voici la méthode qui appelle le navigateur:

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

Pourrait-il y avoir autre chose que je devrais incorporer dans mon script pour empêcher la boîte de dialogue.

16
user7836878

Vous pouvez définir la capacité useAutomationExtension sur false.

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

Cette fonctionnalité vous aidera à ne pas charger Chrome. Automatisation. Pour cette raison, "Impossible de charger l'extension" une fenêtre contextuelle ne pas apparaître.

Notez cependant que vous ne pourrez effectuer aucune opération de redimensionnement/positionnement de la fenêtre sans l’extension d’automatisation Chrome.

J'espère que cela t'aides!

Source: https://bugs.chromium.org/p/chromedriver/issues/detail?id=1749

10
Swetha Kandimalla

J'ai rencontré le même problème après la mise à niveau vers ChromeDriver v2.29. J'ai Chrome v58.0. Cela ressemble à un problème en suspens: https://bugs.chromium.org/p/chromedriver/issues/detail?id=639#c26

Selon vos versions, YMMV, dans mon cas, j'ai dû passer à ChromeDriver v2.27.

5
jersey-city-ninja

Ce message d'erreur ...

Erreur de chargement de l'extension

Impossible de charger l'extension à partir de 'C:\Utilisateurs\nom d'utilisateur\AppData\Local\Temp\scoped_dir6312_32763\internal'. Le chargement des extensions décompressées est désactivé par l'administrateur.

Voulez-vous réessayer?

Oui Non

... implique qu'une extension n'a pas été chargée car elle a été désactivée par l'administrateur.

Selon Problème 1749: Échec de chargement de l'extension à partir de: ... Le chargement d'extensions décompressées est désactivé par l'administrateur ChromeDriver utilise l'extension d'automatisation Chrome pour automatiser diverses fonctions telles que le dimensionnement de la fenêtre, le positionnement de la fenêtre, etc.

Le Echec du chargement de l'extension .. contextuel signifie que cette extension n'a pas été chargée. Si vous fermez manuellement la fenêtre contextuelle, le navigateur agira normalement et les commandes ChromeDriver continueront de fonctionner comme prévu. Mais dans ce cas, si vous essayez d’exécuter des commandes de redimensionnement ou de repositionnement de fenêtre, une erreur sera générée unknown error: cannot get automation extension _ .

Jusqu'à ChromeDriver v2.28 chaque fois que la stratégie d'administration d'une entreprise interdit les extensions interdites, pour contourner la restriction, les utilisateurs ont utilisé l'argument disable-extensions comme suit:

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

et cela a fonctionné perfecto.

ChromeDriver v2.28, à chaque fois que disable-extensions le drapeau est passé par test, ChromeDriver passe implicitement disable-extensions-except _ indicateur qui charge à son tour extension d’automatisation Chrome. Cette extension aide Chromedriver à effectuer des opérations de redimensionnement et de repositionnement de fenêtre.

Ainsi, si votre politique d'administration d'organisation bloque les extensions, l'affichage de la fenêtre contextuelle n'a pas pu charger l'extension à partir de: ... Le chargement d'extensions décompressées est un comportement attendu.

Ce problème dépendait de support Selenium pour les sans tête .

Vous pouvez également définir la fonctionnalité useAutomationExtension sur false comme suit:

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

Cette fonctionnalité vous aidera à ne pas charger extension de Chrome Automation et Failed to load extension _ popup n'apparaitra pas. Mais vous ne pourrez effectuer aucune opération de redimensionnement/positionnement de la fenêtre sans extension d'automatisation Chrome.

Maintenant, prise en charge de Selenium pour headless en cours de résolution ChromeDriver ne nécessitera plus cette extension et vous ne devriez pas avoir vu cette erreur/popup.

Solution

La solution la plus simple consisterait à utiliser la dernière version de ChromeDriver et Chrome combinaison parmi les suivantes:

  • Si vous utilisez la version 73 de Chrome , veuillez télécharger ChromeDriver 73.0.3683.20
  • Si vous utilisez la version 72 de Chrome , veuillez télécharger ChromeDriver 2.46 ou ChromeDriver 72.0.3626.69
  • Si vous utilisez la version 71 de Chrome , veuillez télécharger ChromeDriver 2.46 ou ChromeDriver 71.0.3578.137
  • Pour les anciennes versions de Chrome, veuillez consulter ceci discussion .

Alternative

Quelques autres alternatives sont:

  • Ajoutez la clé de registreExtensionInstallWhitelist à la liste blanche
  • Supprimez la clé de registreExtensionInstallBlacklist contenant une clé de chaîne 1 avec une valeur *
4
DebanjanB

Si vous allez à chrome://version/, Vous pouvez voir sous la commande:

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:,

C’est pourquoi il jette une erreur, je ne sais pas pourquoi il donne une erreur, peut-être une stratégie utilisateur ou Chrome met à jour?

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

Je crois que l'argument est ajouté par Selenium, vous avez besoin de la commande suivante pour indiquer à Selenium de ne pas l'ajouter.

En C #:

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

En Java:

chromeOptions.AddAdditionalCapability("useAutomationExtension", false)
2
wwjih123

Le code ci-dessous fonctionne correctement pour moi chrome pilote 2.41 et version du navigateur 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");
  }
}

Il appelle avec succès le navigateur chrome sans afficher la fenêtre contextuelle "chargement de l'extension non compressée désactivée par l'administrateur"

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

Le code ci-dessous fonctionne pour moi:

Définissez useAutomationExtension sur false

options.setExperimentalOption("useAutomationExtension", false);

Code complet:

    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

J'ai essayé diverses choses, telles que la suppression de l'entrée * de Chrome dans le registre de Windows (ce qui est un bidouillage pénible car elle est inversée plusieurs fois par semaine par la stratégie du groupe de sociétés). La solution de travail a finalement été trouvée. Avec le code suivant, la fenêtre contextuelle "extension de chargement d'erreur" n'apparaît plus.

${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