Загрузка расширений в Firefox через Селен и Python - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь загрузить дополнения Firefox в безголовый Firefox с помощью браузера selenium в Python.

from selenium import webdriver
import time
geckodriver = 'C:\\Gecko\\geckodriver.exe'

options = webdriver.FirefoxOptions()
options.add_argument('-headless')


profile = webdriver.FirefoxProfile('C:/AppData/Roaming/Mozilla/Firefox/Profiles/am97bfb5.default-1538379314459')
profile.set_preference("network.http.use-cache", False)

profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.socks", "127.0.0.1")
profile.set_preference("network.proxy.socks_port", 9150)
profile.set_preference("network.proxy.socks_version", 5)
profile.set_preference("javascript.enabled", True);
profile.set_preference("network.proxy.socks_remote_dns", False)
profile.set_preference("general.useragent.override","Mozilla/5.0 (Linux; Android 6.0; HTC One M9 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36")
profile.exp="D:/test/XPI/uBlock0@raymondhill.net.xpi"
profile.add_extension(extension=profile.exp)
time.sleep(5)


browser = webdriver.Firefox(firefox_profile=profile,executable_path=geckodriver, firefox_options=options)
print (profile.path)
browser.get('https://intoli.com/blog/making-chrome-headless-undetectable/chrome-headless-test.html')

browser.save_screenshot('D:\\Test\\headless_firefox_test.png')

browser.quit()

Однако после запуска кода я получаю следующую ошибку:

File "C: \ Anaconda \ lib \ site-packages \ selenium \ webdriver \ firefox \ firefox_profile.py ", строка 351, в _addon_details поднять AddonFormatError (str (e), sys.exc_info () [2])

AddonFormatError: ("[Errno 2] Нет такого файла или каталога: 'C: \\ Users \\ AppData \\ Local \\ Temp \\ tmp6cn69jiy.uBlock0@raymondhill.net.xpi \\ install.rdf'",)

У вас есть идеи?Я искал другие посты на сайте, но не нашел ничего, что могло бы работать на код.

Спасибо!

1 Ответ

0 голосов
/ 02 октября 2018

Попробуйте использовать Firefox Developer Edition вместо стандартного Firefox.Это сработало для меня в C #.Надеюсь, что это решение поможет вам.Кроме того, как я вижу в вашем коде, вы запускаете Firefox с определенным профилем, поэтому самый простой способ - это добавить ваше расширение вручную в свой профиль, и тогда вам не нужно делать это программно

...