如何使用python在selenium中的chrome驱动程序中加载扩展

时间:2018-05-21 07:30:37

标签: python selenium selenium-webdriver

我打开启用了Browsec扩展程序的Chrome浏览器的所有努力都失败了。这是我最后尝试的 -

# Configure the necessary command-line option.
options = webdriver.ChromeOptions()
options.add_argument(r'--load- 
extension=C:\Users\lap0042\AppData\Local\Google\Chrome\User 
Data\Default\Extensions\omghfjlpggmjjaagoclmmobgdodcjboh')

# Initalize the driver with the appropriate options.
driver = webdriver.Chrome(chrome_options=options)

driver.get("http://stackoverflow.com")

这导致错误“无法加载扩展名。清单文件丢失或不可读”

在搜索到这个错误之后,我得到Manifest.json文件应该重命名为manifest.json.txt,但这样做会导致同样的错误。

任何帮助都将受到高度赞赏

enter image description here

4 个答案:

答案 0 :(得分:1)

要使用任何扩展程序打开Chrome浏览器,您需要通过add_extension()类的实例使用chrome.options方法,并且可以使用以下解决方案:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_extension(r'C:\path\to\extension.crx')
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get('https://www.google.co.in')
print("Page Title is : %s" %driver.title)
driver.quit()

您可以在ChromeDriver - WebDriver for Chrome页面的 Using the ChromeOptions class 部分找到该文档。

答案 1 :(得分:0)

使用此代码获取扩展程序

from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

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

使用以下内容获取crx文件     http://crxextractor.com/来自你的扩展ID,即omghfjlpggmjjaagoclmmobgdodcjboh

答案 2 :(得分:0)

对于Python,您需要wright路径来manifest.json文件

from selenium.webdriver.chrome.options import Options
from selenium import webdriver

path = os.path.dirname(r"C:\temp\mdnleldcmiljblolnjhpnblkcekpdkpa\19.5.1.10_0\manifest.json")

options = Options()
options.add_argument(f"--load-extension={path}")
driver = webdriver.Chrome(options=options)

答案 3 :(得分:0)

据我所知,最简单的答案 - 在您引用的位置的子文件夹中显示(例如 3.28.2_0' 或任何最新版本的扩展程序......)

这假设您正在使用 'options.add_argument('--load-extension=')...

对于 options.add_extension('参考 crx 文件 .crx')