我去Chrome Extension Downloader为 'Adblock-Plus_v1.4.1' 获取 .crx 文件。
我把它扔到我正在工作的目录中,然后运行:
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'.
然后最终出现 webdriver 异常:
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 打开时,它似乎记得它以前的位置,但没有更多,没有书签,没有扩展,什么都没有。