Selenium Firefox与Python3 FirefoxProfile.set_preference()被忽略

时间:2016-04-18 10:45:08

标签: javascript selenium firefox selenium-webdriver python-3.4

我试图通过Python 3.4在selenium 2.53.1驱动的Firefox 45.0.1上设置不同的首选项值。例如。禁用javascript:

>>> from selenium import webdriver
>>> profile = webdriver.FirefoxProfile()
>>> profile.set_preference('javascript.enabled', False)
>>> driver = webdriver.Firefox(firefox_profile=profile)

但是,这会被忽略,about:config显示

javascript.enabled  true

并且JavaScript代码正常执行。虽然about:config确实表明它是用户设置的。缺少什么?

2 个答案:

答案 0 :(得分:1)

你不能

  

无法再从用户界面全局完成。还有一些其他选择。根据您需要阻止的内容,可能值得考虑脚本阻止程序,例如

https://support.mozilla.org/en-US/questions/994809

答案 1 :(得分:0)

这是一个相当老的问题,但至少在Selenium 3.14和Firefox 63中也很容易解决:

使用了用于禁用JS的Options():

from selenium.webdriver.firefox.options import Options
options = Options()
options.preferences.update({"javascript.enabled": False})
browser = webdriver.Firefox(options=options)
browser.get('about:config')

此任务已在此处解决): How to disable Javascript when using Selenium?