我试图加载google chrome extension
用Selenium WebDriver
。
但我收到一个错误OSError: Path to the extension doesn't exist
。
这是我正在使用的代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
from os import path
path = "path to chrome driver"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_extension('Adblock-Plus_v1.12.4_0.crx') # ALTERNATIVE 0
driver = webdriver.Chrome(path, chrome_options=chrome_options)
在阅读了本网站上的各种类似问题后,我尝试了以下两种选择:
# Alternative 1
chrome_options.add_extension('~/Library/Application\ Support/Google/Chrome/Default/Extensions/[Extension ID]/Adblock-Plus_v1.12.4_0.crx')
#Alternative 2
chrome_options.add_extension(path.abspath("Adblock-Plus_v1.12.4_0.crx"))
但是它们都不起作用。备选方案 1 给出与原始代码相同的错误消息,而备选方案 2 给出错误AttributeError: 'str' object has no attribute 'abspath'
有没有人知道我可以做些什么不同的事情?
可能更感谢,这是因为 python 引用了错误的路径,通常是路径中的主目录快捷方式~/
。Python 将尝试从当前目录运行该文件,例如,如果您的代码在 中~/Dev/testproject
,并且上面调用的代码实际上是在尝试运行/home/username/Dev/testproject/~/Library/Application Support/Google/Chrome/Default/Extensions/[Extension ID]/Adblock-Plus_v1.12.4_0.crx
尝试使用以下方法:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import os
chromedriver = "path to chrome driver"
chrome_options = webdriver.ChromeOptions()
# choose one of the following 2:
chrome_options.add_extension(os.path.expanduser('~/Library/Application\ Support/Google/Chrome/Default/Extensions/[Extension ID]/Adblock-Plus_v1.12.4_0.crx')) # Option 1: if your extension is not also in your project folder
chrome_options.add_extension(os.path.abspath('Adblock-Plus_v1.12.4_0.crx')) # Option 2: if your extension IS in your project folder
driver = webdriver.Chrome(chromedriver, chrome_options=chrome_options)
编辑:避免声明一个命名的变量,path
因为你是path
从os
. 这就是您在替代方案 #2 上收到错误的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句