一尘不染

Selenium:Firefox Webdriver的about:config中的布尔设置

selenium

对于一个测试套件,我正在运行一个使用selenium
webdriver控制Firefox实例的python脚本。我想将dom.disable_open_during_loadabout:config中的设置更改为true。尽管这是我默认的Firefox配置文件中的默认设置,但是false每当我启动一个webdriver实例时,selenium都会将其更改为(用户定义)。似乎使用的是匿名的,略有更改的个人资料?!然后,我可以手动将其改回,但是我却在用代码来解决这一问题:既不使用新的配置文件,也不使用通过Firefox的配置文件管理器配置的预设配置文件即可解决此问题。

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自动设置的地方吗?我正在使用:

  • geckodriver0.16.1
  • selenium3.4.2。
  • Firefox 53.0.3(64位)
  • python 3.4.4

编辑:
我刚刚在SO上找到了这个问题,在Java中处理了同样的问题。

如果事实证明这是不可能的,那么可能有一个不错的解决方法?有任何想法吗?


阅读 388

收藏
2020-06-26

共1个答案

一尘不染

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的覆盖。

2020-06-26