2

Я использую Selenium Marrionette и GeckoDriver, чтобы вытащить веб-данные. Я использую следующее, чтобы установить мой Firefox Профиль предпочтения:Python Устанавливает настройки Firefox для Selenium - Загрузить Местоположение

fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList", 1) fp.set_preference("browser.helperApps.alwaysAsk.force", False) fp.set_preference("browser.download.manager.showWhenStarting",False) fp.set_preference("browser.download.dir", "H:\Downloads") fp.set_preference("browser.download.downloadDir","H:\Downloads") fp.set_preference("browser.download.defaultFolder","H:\Downloads")

binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')

firefox_capabilities = DesiredCapabilities.FIREFOX firefox_capabilities['marionette'] = True

driver = webdriver.Firefox(capabilities=firefox_capabilities,firefox_binary=binary, firefox_profile = fp)

Из того, что я понимаю, после прочтения Unable to set firefox profile preferences и FirefoxProfile passed to FirefoxDriver, кажется, что нет ничего делается при использовании firefox_profile сейчас. Поэтому мне нужно реализовать новые обновления до firefox_capabilities, но я не уверен, как это сделать. Есть идеи?

ответ

3

Хорошо, я верю, что, наконец, понял этот беспорядок. Вместо того, чтобы использовать код выше, я использовал следующий код, который я указываю в моей папке профиля Firefox (если вам нужно обновить настройки профиля по умолчанию сделать это в Firefox перед запуском этого кода):

from selenium.webdriver.firefox.options import Options 
binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe') 
fp = (r'C:\Users\username\AppData\Roaming\Mozilla\Firefox\Profiles\oqmqnsih.default') 
opts = Options() 
opts.profile = fp 
firefox_capabilities = DesiredCapabilities.FIREFOX 
firefox_capabilities['marionette'] = True 
driver = webdriver.Firefox(capabilities=firefox_capabilities,firefox_binary=binary, firefox_options = opts) 

Я побежал это кода вместе с моим кодом веб-очистки. Как только я щелкнул ссылку «Экспорт CSV», он автоматически загружается, а не появляется окно «Диспетчер загрузки». Не стесняйтесь добавлять отзывы.

0

Вместо предыдущего ответа, вы можете правой кнопкой мыши и выберите Сохранить как и сохранить его в нужный каталог и после этого момента, что каталог будет ваш каталог по умолчанию для этой сессии и вы может изменить его с помощью того же метода. Но этот вариант также не является решением, если вы хотите, чтобы этот путь был динамичным и программным образом менял его в том же сеансе. так что ответ на эту проблему является here .Если вы можете использовать драйвер Chrome, однако, следуя инструкциям в this answer

0

решение для моего питона сценария (на raspi 3):

двоичная = FirefoxBinary ('/ USR/bin/firefox ') driver = webdriver.Firefox (возможности = {' browserName ':' firefox '}, firefox_binary = двоичный)

0

Исходный код является неполным. Вы должны установить значение browser.download.folderList как 2:

fp = webdriver.FirefoxProfile() 
fp.set_preference("browser.download.folderList", 2) # 0 means to download to the desktop, 1 means to download to the default "Downloads" directory, 2 means to use the directory 
fp.set_preference("browser.helperApps.alwaysAsk.force", False) fp.set_preference("browser.download.manager.showWhenStarting",False) fp.set_preference("browser.download.dir", "H:\Downloads") 

binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe') 

firefox_capabilities = DesiredCapabilities.FIREFOX 
firefox_capabilities['marionette'] = True 

driver = webdriver.Firefox(capabilities=firefox_capabilities,firefox_binary=binary, firefox_profile = fp)