Webdriver - Нельзя использовать режим без головы в Firefox при использовании настроек - PullRequest
0 голосов
/ 19 октября 2018

Я хочу запустить Firefox без помощи головы через Selenium, но, похоже, не могу найти способ сделать это и сохранить свои настройки одновременно.

from selenium import webdriver;
from selenium.webdriver import Firefox;

cProfile = webdriver.FirefoxProfile();
options = webdriver.FirefoxOptions();
dwnd_path = os.getcwd();

options.add_preference('browser.download.folderList', '2');
options.add_preference('browser.download.manager.showWhenStarting', 'false');
options.add_preference('browser.download.dir', 'dwnd_path');
options.add_preference('browser.helperApps.neverAsk.saveToDisk', 'application/octet-stream,application/vnd.ms-excel');

Запустив это, я получу этоошибка:

Traceback (most recent call last):
  File "test.py", line 17, in <module>
    options.add_preference('browser.download.folderList', '2');
AttributeError: 'Options' object has no attribute 'add_preference'

Есть идеи?

1 Ответ

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

Это сообщение об ошибке ...

AttributeError: 'Options' object has no attribute 'add_preference'

... означает, что экземпляр Опции не поддерживает атрибут add_preference .

add_preference поддерживается экземпляром FirefoxProfile () * только 1013 *.

Вы можете найти подробное обсуждение использования add_preference с экземпляром FirefoxProfile() in Python: невозможно загрузить с селеном на веб-странице

Таким образом, ваш эффективный блок кода будет:

from selenium import webdriver;
from selenium.webdriver.firefox.options import Options

cProfile = webdriver.FirefoxProfile();
dwnd_path = os.getcwd();
cProfile.add_preference('browser.download.folderList', '2');
cProfile.add_preference('browser.download.manager.showWhenStarting', 'false');
cProfile.add_preference('browser.download.dir', 'dwnd_path');
cProfile.add_preference('browser.helperApps.neverAsk.saveToDisk', 'application/octet-stream,application/vnd.ms-excel');
options = Options()
options.headless = True
driver = webdriver.Firefox(firefox_profile=cProfile, firefox_options=options, executable_path=r'C:\path\to\geckodriver.exe')

Вы можете найти подробное обсуждение для использования headless аргумент через экземпляр класса Options() в [Как сделать программный код Firefox безголовым в Selenium с помощью Python?] ( Как сделать программный код Firefox безголовым в Selenium с помощью Python?

...