Ich ging zu Chrome Extension Downloader, um die .crx-Datei für "Adblock-Plus_v1.4.1" zu finden.Ausführen von Selenium WebDriver mit Python mit Erweiterungen (.crx-Dateien)
Ich warf es in dem Verzeichnis im Arbeits in, und dann lief:
from selenium import webdriver
chop = webdriver.ChromeOptions()
chop.add_extension('Adblock-Plus_v1.4.1.crx')
driver = webdriver.Chrome(chrome_options = chop)
Es total erkennt an, dass es existiert, aber es gibt mir, was wie eine Nachricht ChromeDriver.exe Stil aussieht:
ERROR:extension_error_reporter.cc(56)] Extension error: Package is invalid: 'CRX_PUBLIC_KEY_INVALID'.
Dann schließlich eine WebDriver Ausnahme:
selenium.common.exceptions.WebDriverException: Message: u'Extension could not be installed'
Ich bin fast 100% sicher, dass an meinem Code nichts falsch ist, weil er zuerst eine Nachricht vom Typ ChromeDriver eingibt, bevor er die Ausnahme auslöst.
Ich versuchte auch versucht, indem Sie auf 'C:\Documents and Settings\\*UserName*\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions'
auf chrome://extensions/
mit Entwicklermodus auf, es selbst zu packen, dass CRX zu verwenden, die erstellt wurde, und bekam die ich versuchte, genau die gleiche Fehlermeldung
auch eine andere Art und Weise:
chop = webdriver.ChromeOptions()
chop.add_argument('--load_extension=Adblock-Plus_v1.4.1.crx')
driver = webdriver.Chrome(chrome_options = chop)
diese nicht eine Ausnahme oder sogar einen Chrome-Treiberfehler verursachen, aber wenn ich zu chrome://extensions/
tut es sagt, gehe von Hand, dass die Erweiterung geladen wird ...
Im mein Problem zu denken hat mit der eigentlichen .crx-Datei selbst zu tun. wegen der Art der Fehlermeldung ... aber dann zur gleichen Zeit, bin ich nicht sicher, denn wenn ich eine webdriver.Chrome()
Sitzung spawn, und dann manuell gehen zu kann ich physisch Drag & Drop installieren Sie die gleiche .crx-Datei.
Edit: Ich erkannte ich den Ball hielt stellen tatsächlich eine Frage so ist es hier:
Was mache ich falsch? Warum kann ich diese Chrome-Erweiterung nicht laden? Ist es mein Code oder die .crx-Datei selbst?
UPDATE: @ Pat Meeker Ive versucht, dies aber im etwas in der Übersetzung von Java zu verlieren Python
capability = webdriver.DesiredCapabilities.CHROME
einen Wörterbuch zurück, die alle meine Argumente i hat, so im ziemlich sicher, dass der einzigen Teil, i Sie müssen die Argumente hinzufügen.
options = webdriver.ChromeOptions()
options.add_argument('--user-data-dir=C:/Users/USER_NAME/AppData/Local/Google/Chrome/User Data/Default/')
Das ist, was ich jetzt habe, und wenn ich versuche zu driver = webdriver.Chrome(chrome_options=options)
Chrom eröffnet, und es scheint, seine vorherige Position zu erinnern, aber nichts mehr, keine Lesezeichen, keine Erweiterungen gar nichts.
Möchten Sie den Vorgang testen, die Erweiterung tatsächlich hinzuzufügen? Oder brauchst du nur die Erweiterung? Wenn Letzteres, Sie in der Lage sein sollten, manuell die Erweiterung (einmal) mit einem bestimmten Chrome-Benutzerprofil hinzufügen, und dann in Ihrem Test - richten Sie Ihren WebDriver mit diesem Profil, und die Erweiterung sollte da sein. Hier ist eine Antwort auf die Einrichtung des WebDriver mit einem Profil: http://StackOverflow.com/a/15270384/2386700 –