Webdriver - 使用首选项时无法在 Firefox 中使用无头模式
Webdriver - Can't use headless mode in Firefox when using preferences
我想通过 Selenium 无头启动 Firefox,但我似乎找不到既能做到又能保持我的偏好设置的方法。
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'
有什么想法吗?
这个错误信息...
AttributeError: 'Options' object has no attribute 'add_preference'
...暗示 Options 的实例不支持属性 add_preference.
add_preference 仅受 FirefoxProfile() 实例支持。
您可以在
中找到有关将 add_preference
与 FirefoxProfile()
实例一起使用的详细讨论
因此您的有效代码块将是:
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')
参考
您可以在
中通过 Options()
class 的实例找到有关如何使用 headless
参数的详细讨论
我想通过 Selenium 无头启动 Firefox,但我似乎找不到既能做到又能保持我的偏好设置的方法。
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'
有什么想法吗?
这个错误信息...
AttributeError: 'Options' object has no attribute 'add_preference'
...暗示 Options 的实例不支持属性 add_preference.
add_preference 仅受 FirefoxProfile() 实例支持。
您可以在
add_preference
与 FirefoxProfile()
实例一起使用的详细讨论
因此您的有效代码块将是:
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')
参考
您可以在
Options()
class 的实例找到有关如何使用 headless
参数的详细讨论