2013-05-13 6 views
7

Ich habe hier ein besonderes Problem. Wenn ich chromeBrowser über chromeDriver öffne, fehlen die Erweiterungen, die vorher installiert wurden. Auch die apps-Erweiterung wird aus Erweiterungen Ordner gelöscht (AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions).Beim Chrome-Browser installierte Extensions fehlen, wenn die Chrome-Browser-Instanz mit Selenium geöffnet wurde chromDriver

Jetzt, wenn ich den Chrome-Browser manuell öffne, erscheint die Erweiterung im Browser, auch der App-Ordner im Erweiterungsordner (AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions) erscheint nicht mehr.

Unten ist die Version von Chrome-Treiber & Browser. chromedriver version: 26.0.1383.0 chrombrowser: 26.0.1410.64

Bitte helfen Sie mit.

+0

Braucht jemand mehr Informationen, um auf diese ... zu helfen? – navger

Antwort

0

ChromeOptions Optionen = new ChromeOptions(); options.AddAdditionalCapability ("excludeSwitches", neues Objekt [] {"disable-default-apps"});
IWebDriver drv = neuer ChromeDriver (Optionen);

verfügbar ab webdriver .net Bindungen ab 2,40.

+0

Auch mit aktualisierter Syntax - es funktioniert nicht für mich. 'options.AddExcludedArgument (" disable-default-apps ")' –

2

Wenn die Erweiterung während des Tests verfügbar sein soll, müssen Sie Chrome mit einem Profil starten, das diese Erweiterung definiert, oder dem Webtreiber die Erweiterung als gewünschte Eigenschaft zuweisen. Wenn Sie Chrome über den Webdriver starten, startet das Chrom normalerweise jedes Mal mit einem neuen Profil.

also, wenn Sie eine Erweiterung in der Test Chrom laden möchten, dies tun:

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability("chrome.switches", 
    Arrays.asList("--load-extension=/path/to/extension/directory")); 
WebDriver driver = new ChromeDriver(capabilities); 

Mehr Informationen über die Sache kann here

+0

Hallo luksch .. !! ich versuchte, chromedriver mit "--user-data = {Profilpfad}" zu öffnen, aber das funktioniert auch nicht. – navger

+0

was funktioniert nicht? Gibt es eine Fehlermeldung? hast du hier nachgesehen: http://www.chromium.org/user-experience/user-data-directory – luksch

6

Sie zu installieren haben, um jede Erweiterung verwenden Sie wollen gefunden werden . In Selenium2 C# API sieht es aus wie diese

var options = new ChromeOptions(); 
options.AddExtension(Path.GetFullPath("local/path/to/extension.crx")); 
var driver = new ChromeDriver(options); 

und die Erweiterung wird im Browser sein. Referenz für Java kann here gefunden werden. Unter this question erfahren Sie, wie Sie die CRX-Datei für Ihre Erweiterung vom Chrome Store erhalten.

+0

Es muss keine CRX-Datei sein, zip-Dateien werden auch akzeptiert. Die API ist implementiert als "Erstelle ein neues Benutzerprofil, entpacke die Erweiterung und lade die entpackte Erweiterung". Trotzdem +1, weil diese Antwort korrekter ist als die andere. –

+0

@RobW laden CRX gibt mir fehlende Manifest-Datei Fehler. Auch wie bekomme ich Zip-Paket einer Erweiterung? – MonsterMMORPG

4

diese Antwort finden Sie hier https://sites.google.com/a/chromium.org/chromedriver/extensions. Chrome-Erweiterungen können entweder gepackt oder entpackt werden. Gepackte Erweiterungen sind eine einzelne Datei mit der Erweiterung .crx. Unpacked Extensions sind ein Verzeichnis, das die Erweiterung enthält, einschließlich einer manifest.json-Datei.

Um eine entpackte Erweiterung zu packen, verwenden Sie die Schaltfläche "Packen" in chrome: // extensions oder verwenden Sie Chrome: "chrome.exe --pack-extension = C: \ Pfad \ zu \ entpackter \ Erweiterung --Pack-Erweiterung- Schlüssel = C: \ myext.pem ". Weitere Möglichkeiten zur Automatisierung finden Sie in den erweiterten Dokumenten. Um eine gepackte Erweiterung zu entpacken, entpacken Sie einfach die Datei (Sie müssen die Datei möglicherweise von .crx in .zip umbenennen, damit Ihr Zip-Dienstprogramm sie erkennt). Installation Erweiterungen über ChromeDriver

Verpackt (CRX-Datei)

ChromeOptions options = new ChromeOptions(); 
options.addExtensions(new File("/path/to/extension.crx")); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 

Entpackte (Verzeichnis)

ChromeOptions options = new ChromeOptions(); 
options.addArguments("load-extension=/path/to/extension"); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 
Verwandte Themen