gpt4 book ai didi

python - 通过远程驱动程序为 Firefox 设置首选项不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:28 24 4
gpt4 key购买 nike

我遇到了一个棘手的抓取问题,其中有大量的 javascript 创建了 session 相关的 cookie,我正在尝试使用 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 我没有发现已设置的conf。在这个 debian 上,我安装了 Iceweasel 24.2.0,但我也尝试过在 ubuntu 上使用普通的 Firefox,但没有成功。

知道我的问题是什么吗?

最佳答案

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

事实证明profile.set_preference("browser.download.manager.showWhenStarting",False)

尝试设置 FF 无法识别的首选项。如果您在普通配置文件中查看 about:config,则该设置不存在。至少从 FF 35 开始不是这样。也许那是过去的某个时候,但仅此而已。

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

浏览器 = webdriver.Remote(..., browser_profile=profile)

相关问题:

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

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

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

关于python - 通过远程驱动程序为 Firefox 设置首选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21851240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com