【问题标题】:set_preference for Firefox via Remote Driver not working通过远程驱动程序设置 Firefox 的首选项不起作用
【发布时间】:2014-02-18 10:41:09
【问题描述】:

我的手上有一个很脆的抓取问题,其中有很多创建会话相关 cookie 的 javascript,我正在尝试使用 selenium 绕过这个问题。我正在使用 python 驱动程序(python-selenium,debian 上的版本 2.2.0-1)。如果没有从 selenium-server-standalone-2.39.0.jar 获得的远程驱动程序,浏览器正在启动但无法正常工作(它报告了一些配置文件问题)。使用远程驱动一切都很好,除了 set_preference 不起作用(我需要定义一个 browser_profile 以便能够自动保存一些文件):

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location 
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', '/tmp')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf')
#browser = webdriver.Firefox()
browser = webdriver.Remote(
   command_executor='http://127.0.0.1:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.FIREFOX, browser_profile=profile)

通过这种方式,不仅打开了带有保存/打开选项的对话框,而且检查了 about:config 我没有找到已设置的 confs。 在这个 debian 上,我有 Iceweasel 24.2.0,但我也尝试过使用普通 Firefox 的 ubuntu,但没有运气。

知道我的问题可能是什么吗?

【问题讨论】:

    标签: python firefox selenium selenium-webdriver


    【解决方案1】:

    我意识到这有点晚了,但我找到了我认为是这个问题的实际答案。

    原来如此 profile.set_preference("browser.download.manager.showWhenStarting",False)

    尝试设置 FF 无法识别的首选项。如果您在普通配置文件中查看 about:config,则该设置不存在。至少从 FF 35 开始没有。也许是过去的某个时候,但不会再多了。

    无论如何,这显然足以使修改后的配置文件无效,导致 FF 拒绝整个事情(或可能导致 Selenium 库在将配置文件传递给 FF 时崩溃):

    browser = webdriver.Remote(..., browser_profile=profile)

    相关问题:

    https://code.google.com/p/selenium/issues/detail?id=7017

    我发现删除对 set_preference 设置的调用允许修改后的配置文件生效。

    我的初步结论是修改后的配置文件必须只有FF理解的修改。

    【讨论】:

      【解决方案2】:

      您能否进行所需的设置并永久保存配置文件?然后,您可以在不需要 set_preference 的情况下加载此配置文件。

      编辑: 另见Python - Remote Webdriver with Extension installed in it

      【讨论】:

      • 使用我的 Iceweasel 配置文件确实有效,谢谢。找出为什么 set_preference 不起作用但现在对我来说没问题会很有趣:)
      【解决方案3】:

      您对此案的解决方案here 这个原因的配置文件没有被采纳。我们需要通知 Firefox 更新新的配置文件。

      【讨论】:

        猜你喜欢
        • 2012-10-25
        • 1970-01-01
        • 2017-07-23
        • 2019-05-10
        • 2014-10-03
        • 2022-10-03
        • 1970-01-01
        • 1970-01-01
        • 2014-07-08
        相关资源
        最近更新 更多