对于一个测试套件,我正在运行一个使用selenium webdriver控制Firefox实例的python脚本。我想将dom.disable_open_during_loadabout:config中的设置更改为true。尽管这是我默认的Firefox配置文件中的默认设置,但是false每当我启动一个webdriver实例时,selenium都会将其更改为(用户定义)。似乎使用的是匿名的,略有更改的个人资料?!然后,我可以手动将其改回,但是我却在用代码来解决这一问题:既不使用新的配置文件,也不使用通过Firefox的配置文件管理器配置的预设配置文件即可解决此问题。
dom.disable_open_during_load
true
false
from selenium import webdriver FFprofile = webdriver.FirefoxProfile() FFprofile.set_preference('dom.disable_open_during_load', 'true') # I also tried True, 1 - with and without quotes # FFprofile = webdriver.FirefoxProfile('C:/Users/ExampleUser/AppData/Local/Mozilla/Firefox/Profiles/owieroiuysd.testprofile') FFdriver = webdriver.Firefox(firefox_profile=FFprofile) FFdriver.get('http://www.google.com')
我可以通过这种方式更改各种设置,但不适用于此设置。更改后的值false“用户定义”来自何处?它是selenium自动设置的地方吗?我正在使用:
编辑: 我刚刚在SO上找到了这个问题,在Java中处理了同样的问题。
如果事实证明这是不可能的,那么可能有一个不错的解决方法?有任何想法吗?
fp = webdriver.FirefoxProfile() fp.DEFAULT_PREFERENCES[‘frozen’][“dom.disable_open_during_load”] = True
不要使用,profile.set_preference('dom.disable_open_during_load', True)因为profile.default_preference它将被Frozen的覆盖。
profile.set_preference('dom.disable_open_during_load', True)
profile.default_preference