如何解决Selenium Grid 4 for Firefox 是否缺少扩展插件选项?
我让 Selenium 在本地运行良好,使用以下设置添加扩展。
from selenium import webdriver
from selenium.webdriver.firefox.options import Options as firefox_options
def init_firefox(self,threadname,headless,images_off):
if headless == True:
options=firefox_options()
options.add_argument("--headless")
driver = webdriver.Firefox(options=options,executable_path=(r"C:\Users\charl\OneDrive\python\gecko\geckodriver.exe"))
else:
options=firefox_options()
driver = webdriver.Firefox(executable_path=(r"C:\Users\charl\OneDrive\python\gecko\geckodriver.exe"))
extension_dir = ('C:\\Users\\charl\\OneDrive\\python\\gecko\\extensions\\')
extensions = [
'firefox@vid.io.xpi','noimages.xpi',]
for extension in extensions:
driver.install_addon(extension_dir + extension,temporary=True)
self.close_tab(driver)
self.login(driver)
return driver
但是当我使用此代码在 Selenium Grid 4 上尝试相同时:-
from selenium import webdriver
from selenium.webdriver.firefox.options import Options as firefox_options
def init_firefox_remote(self,images_off):
if headless == True:
#options = Options()
options=firefox_options()
options.add_argument("--headless")
driver = webdriver.Remote(command_executor='http://xx.xxx.xx.xx:4444/wd/hub',options=options)
else:
options=firefox_options()
driver = webdriver.Remote(command_executor='http://xx.xx.xx.xx:4444/wd/hub',options=options)
extension_dir = ('/dev/shm/extensons/')
extensions = [
'firefox@vid.io.xpi',temporary=True)
self.close_tab(driver)
self.login(driver)
return driver
我收到一个错误:-
AttributeError: 'WebDriver' object has no attribute 'install_addon'
我使用的 Selenium Grid 版本是这样创建的
$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-firefox:4.0.0-beta-3-prerelease-20210321
有什么想法吗? Selenium Grid for Firefox 是否缺少安装扩展选项?
解决方法
在远程 Firefox 浏览器中安装插件是通过创建一个 Firefox 配置文件并在那里添加扩展来完成的:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options as FirefoxOptions
profile = webdriver.FirefoxProfile()
options = FirefoxOptions()
profile.add_extension("/path/to/extension.xpi")
driver = webdriver.Remote(command_executor="http://xx.xx.xx.xx:4444/wd/hub",options=options,browser_profile=profile)
我认为无法在远程 Firefox 浏览器中加载临时插件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。