Depuis la dernière version de chrome (34.0.1847.116) la semaine dernière, je reçois le message «Désactiver les extensions en mode développeur» lors de l'exécution de tests automatisés avec watir-webdriver.
Cela semble être une extension offensive mais cela n’a aucun sens pour moi qu’il s’agisse d’une extension potentiellement dangereuse compte tenu de son utilisation par le chromedriver.
Tous ceux qui ont trouvé une solution à ce problème, car je ne parviens pas à revenir à la version précédente ni à trouver un programme d'installation pour une version plus ancienne, ce qui cause des dégâts considérables avec mes tests.
Le voie officielle } pour désactiver le popup semble être comme ceci:
Emballez votre extension (chrome://extensions/
, cochez la case 'Mode développeur', cliquez sur 'Pack extension ...') et installez-la par glisser-déposer du fichier .crx
dans la page chrome://extensions
.
(Vous obtiendrez une fenêtre contextuelle "Extensions non prises en charge désactivées, si vous essayez de redémarrer Chrome à ce stade).
Puis pour Win7/8:
http://dl.google.com/dl/edgedl/chrome/policy/policy_templates.Zip
[Zip]\windows\admx\chrome.admx
dans c:\windows\policydefinitions
[Zip]\windows\admx\[yourlanguage]\chrome.adml
dansc:\windows\policydefinitions\[yourlanguage]\chrome.adml
(pas c:\windows\[yourlanguage]
) nmgnihglilniboicepgjclfiageofdfj
Start
> Run
et tapez gpedit.msc
<ENTER>
User Configuration
> Administrative Templates
> Google Chrome
> Extensions
Configure extension installation whitelist
Enabled
, puis cliquez sur Show...
OK
et redémarrez Chrome.C'est tout!
Depuis juillet 2018, cette approche ne fonctionne plus: il semblerait que Google ait cessé de respecter la "liste blanche".
EDIT: Au 16/10/2018, cette approche fonctionne. (Version Chrome 69.0.3497.100 (version officielle) (64 bits))
1. Activez temporairement le mode développeur en chrome: // extensions /
2. Désinstallez l'extension que vous avez installée (plus précisément l'extension à l'origine du message contextuel) à l'aide du bouton "Charger sans emballage".
3.Cliquez sur l'extension du pack et entrez le répertoire racine des fichiers (placez les fichiers d'extension dans un seul dossier/un dossier par erreur provoquant l'extension), n'entrez pas le fichier de clé privée si vous ne l'avez pas.
4.Cliquez sur l'extension du pack pour créer un fichier .crx et .pem près du répertoire racine de l'extension. Installez l'extension à l'aide du fichier crx et conservez le fichier pem en lieu sûr (si vous le supprimez ou si quelque chose se passe mal sans cela, vous pouvez toujours remballer l'extension).
5.Puis copiez l'ID d'extension installée par crx dans la liste blanche et redémarrez Chrome.
Le popup devrait être parti.
Lors de la création du pilote chrome, utilisez l'option pour le désactiver. Son fonctionnement sans aucune extension.
Utiliser l'extrait de code suivant
ChromeOptions options = new ChromeOptions();
options.addArguments("chrome.switches","--disable-extensions");
System.setProperty("webdriver.chrome.driver",(System.getProperty("user.dir") + "//src//test//resources//chromedriver_new.exe"));
driver = new ChromeDriver(options);
À partir du Mai 2015 Chrome beta/dev/canary sous Windows (voir lignes 75 à 78), affichez toujours cet avertissement.
Je viens de patcher chrome.dll (canal de développement, 32 bits) à l'aide de la version de démonstration de hiew32: lancez-le, passez en mode d'affichage hexadécimal (touche Entrée), recherchez ExtensionDeveloperModeWarning (F7), puis appuyez sur F6 pour le trouver. le code de référence, aller à la ligne INC EAX à proximité, suivi de RETN, appuyer sur F3 pour modifier, taper 90 à la place de 40, qui sera affiché sous la forme NOP (no-op), enregistrez (F9).
Méthode simplifiée trouvée par @Gsx, qui fonctionne également pour les développeurs Chrome 64 bits:
Enter
)F7
)F3
pour modifier et remplacer la première lettre "E" par un autre caractèreF9
). patch.BAT
script
Bien sûr, cela ne durera que jusqu’à la prochaine mise à jour. Ainsi, tous ceux qui en ont besoin peuvent écrire un correctif automatique ou un programme de lancement qui corrige la dll en mémoire.
Ne peut être désactivé. Citation: "Désolé, nous savons que c'est agaçant, mais vous les auteurs de logiciels malveillants ..."
Vos seules options sont les suivantes: adapter vos tests automatisés à ce nouveau comportement ou télécharger le script incriminé sur le Chrome Web Store (cette opération peut être effectuée de manière "non répertoriée").
(En réponse à Antony Hatchkins)
C’est le moyen actuel, littéralement officiel de définir les règles de Chrome: https://support.google.com/chrome/a/answer/187202?hl=fr
Les modèles Windows et Linux, ainsi que la stratégie commune La documentation de tous les systèmes d’exploitation est disponible ici: https://dl.google.com/dl/edgedl/chrome/policy/policy_templates.Zip (fichier Zip de modèles et de documentation Google Chrome)
Instructions pour Windows (avec mes ajouts):
Ouvrez le modèle ADM ou ADMX que vous avez téléchargé:
- Extrayez "chrome.adm" dans la langue de votre choix à partir du "policy_templates.Zip" téléchargé précédemment (par exemple, "policy_templates.Zip\windows\adm\en\US\chrome.adm").
- Accédez à Démarrer> Exécuter: gpedit.msc.
- Accédez à Stratégie de l'ordinateur local> Configuration ordinateur/utilisateur> Modèles d'administration.
- Cliquez avec le bouton droit de la souris sur Modèles d’administration, puis sélectionnez Ajouter/Supprimer des modèles.
- Ajoutez le modèle "chrome.adm" via la boîte de dialogue.
- Une fois terminé, le dossier Modèles d'administration classique (ADM)/Google/Google Chrome apparaîtra sous Modèles d'administration.
- Que vous ajoutiez le modèle sous Configuration de l'ordinateur ou Configuration de l'utilisateur, les paramètres apparaîtront aux deux endroits, ce qui vous permettra de configurer Chrome au niveau de l'ordinateur ou de l'utilisateur.
Une fois que vous avez terminé, continuez à partir de l’étape 5 de réponse d’Antony Hatchkins . Une fois que vous avez ajouté le ou les identifiants d'extension, vous pouvez vérifier que la stratégie fonctionne dans Chrome en ouvrant chrome://policy
(recherchez ExtensionInstallWhitelist ).
Je souffrais du même problème et j'ai essayé ce qui suit:
Quelques points à noter:
Lorsque j'ai rouvert Chrome, une fenêtre contextuelle m'informant de la nouvelle extension fournie, j'ai donc redémarré Chrome pour voir si cela se reproduirait, mais ce n'est pas le cas.
J'espère que cette solution a fonctionné!
Le paramètre de désactivation des extensions ne fonctionnait pas pour moi. Au lieu de cela, j'ai utilisé le Robot class pour cliquer sur le bouton Annuler.
import Java.awt.Robot;
import Java.awt.event.InputEvent;
public class kiosk {
public static void main(String[] args) {
// As long as you don't move the Chrome window, the Cancel button should appear here.
int x = 410;
int y = 187;
try {
Thread.sleep(7000);// can also use robot.setAutoDelay(500);
Robot robot = new Robot();
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
Thread.sleep(3000);// can also use robot.setAutoDelay(500);
} catch (AWTException e) {
System.err.println("Error clicking Cancel.");
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
1) Attendez que la bulle apparaisse.
2) Ouvrez un nouvel onglet.
3) Fermez le nouvel onglet. Le popup sera parti de l'onglet d'origine.
Une petite extension Chrome peut automatiser ces étapes:
manifest.json
{
"name": "Open and close tab",
"description": "After Chrome starts, open and close a new tab.",
"version": "1.0",
"manifest_version": 2,
"permissions": ["tabs"],
"background": {
"scripts": ["background.js"],
"persistent": false
}
}
background.js
// This runs when Chrome starts up
chrome.runtime.onStartup.addListener(function() {
// Execute the inner function after a few seconds
setTimeout(function() {
// Open new tab
chrome.tabs.create({url: "about:blank"});
// Get tab ID of newly opened tab, then close the tab
chrome.tabs.query({'currentWindow': true}, function(tabs) {
var newTabId = tabs[1].id;
chrome.tabs.remove(newTabId);
});
}, 5000);
});
Avec cette extension installée, lancez Chrome et changez immédiatement les applications avant que la fenêtre contextuelle ne s'affiche ... quelques secondes plus tard, la fenêtre contextuelle disparaîtra et vous ne la verrez plus lorsque vous revenez à Chrome.
Pour ceux qui utilisent WebdriverIO , vous pouvez désactiver les extensions en créant votre client comme suit:
var driver = require('webdriverio');
var client = driver.remote({
desiredCapabilities: {
browserName: 'chrome',
chromeOptions: {
args: [
'disable-extensions'
]
}
}
});
Je travaille sur Windows et j'ai essayé beaucoup de choses fournies ici comme réponse mais Pop-up désactivait l'extension en permanence, alors j'ai essayé de suivre les étapes suivantes et cela fonctionne maintenant:
Pack extension
et sélectionnez votre répertoire racine d’extensions en cliquant sur le bouton de navigation rectangulaire en rouge affiché dans l’image ci-dessous.Pack extension
affiché dans le cercle rouge dans l’image ci-dessous.Maintenant, dans le contrôle parent directory
de votre root directory
d'extension sélectionné, 2 fichier aurait créé [extension name].crx
et [extension name].pem
.
Maintenant, glissez et déposez le fichier [extension name].crx
sur la page de chrome: // extensions. Il vous demandera alors d’utiliser la boîte de dialogue Ajouter une application, de cliquer sur Add app
et d’actualiser la page où il est installé.
Remarque: Avant de procéder comme indiqué ci-dessus, assurez-vous de activer le mode développeur pour les extensions . Si cela n'a pas été activé, actualisez la page chrome: // extensions après l'avoir activée.
Je ne sais pas si c'est toujours un problème pour les gens. Cependant, j'ai lu ce post et plusieurs autres et j'ai finalement joué avec cela et j'ai pu le faire fonctionner en C # en utilisant ce code. J'ai tout dérivé de ce post et éventuellement quelques posts liés à ce post.
J'espère que cela aide, il a certainement résolu mes problèmes dans l'application console C #.
Utilisation de la version 52.0.2743.116 m de Chrome Selenium 2.9 Server Driver
var chromeService = ChromeDriverService.CreateDefaultService(@"C:\Selenium\InstalledServerDrivers\");
var options = new ChromeOptions();
options.AddArgument("--disable-extensions");
IWebDriver driver = new ChromeDriver(chromeService, options);
driver.Url = "http://www.google.com/";