我想通过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'
。意味着选项的实例不支持属性add_preference。
add_preference仅受FirefoxProfile((实例支持。
您可以找到将add_preference
与 Python 中的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:pathtogeckodriver.exe')
<小时 />参考
您可以在如何使用Options()
headless
python 在 Selenium 中以编程方式使 Firefox 无头