Запуск Selenium WebDriver с использованием Python с расширениями (файлы .crx)

я пошел вЗагрузчик Chrome Extension поймать файл .crx для 'Adblock-Plus_v1.4.1'.

Я бросил его в каталог, в котором я работаю, а затем побежал:

from selenium import webdriver

chop = webdriver.ChromeOptions()
chop.add_extension('Adblock-Plus_v1.4.1.crx')
driver = webdriver.Chrome(chrome_options = chop)

Это полностью признает, что это существует, но это дает мне то, что выглядит какChromeDriver.exe сообщение о стиле:

ERROR:extension_error_reporter.cc(56)] Extension error: Package is invalid: 'CRX_PUBLIC_KEY_INVALID'.

Затем в конечном итоге исключение веб-драйвера:

selenium.common.exceptions.WebDriverException: Message: u'Extension could not be installed'

Я почти на 100% уверен, что в моем коде нет ничего плохого, потому что он сначала помещает сообщение типа ChromeDriver, а затем выдает исключение.

Я также попытался упаковать это сам, зайдя в'C:\Documents and Settings\\*UserName*\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions' наchrome://extensions/ при включенном режиме разработчика попытался использовать созданный файл .crx и получил точно такое же сообщение об ошибке

Я также попробовал другой способ:

chop = webdriver.ChromeOptions()
chop.add_argument('--load_extension=Adblock-Plus_v1.4.1.crx')
driver = webdriver.Chrome(chrome_options = chop)

это не вызывает исключение или даже ошибку драйвера Chrome, но если я вручную перейду кchrome://extensions/ это не говорит о том, что расширение загружено ...

Я думаю, что моя проблема связана с самим файлом .crx. из-за характера сообщения об ошибке ... но в то же время, я не уверен, потому что, если я порождаюwebdriver.Chrome() сеанс, а затем вручную перейти кchrome://extensions/ Я могу физически перетащить и установить тот же файл .crx.

Редактировать: я понял, что на самом деле не задавал вопрос, так что вот оно:

Что я делаю неправильно? Почему я не могу загрузить это расширение Chrome? Это мой код или сам файл .crx?

ОБНОВЛЕНИЕ: @Pat Meeker Я попробовал это, но я теряю что-то в переводе с Java на Python

capability = webdriver.DesiredCapabilities.CHROME возвращает словарь, содержащий все мои аргументы вiЯ уверен, что единственная часть, которую мне нужно сделать, это добавить аргументы.

options = webdriver.ChromeOptions()
options.add_argument('--user-data-dir=C:/Users/USER_NAME/AppData/Local/Google/Chrome/User Data/Default/')

Это то, что у меня есть сейчас, и всякий раз, когда я пытаюсьdriver = webdriver.Chrome(chrome_options=options) chrome открывается, и кажется, что он помнит свою прежнюю позицию, но НИЧЕГО больше, нет закладок, нет расширений, нет ничего.

Ответы на вопрос(2)

Ваш ответ на вопрос