使用Selenium和Python定义网络驱动程序后,如何更改firefox配置文件首选项

问题描述

定义驱动程序后如何更改配置文件首选项?

profile = webdriver.FirefoxProfile()

driver = webdriver.Firefox(firefox_profile=profile)

一些代码需要设置useragent后

profile.set_preference("general.useragent.override",ua)

如何在不定义新驱动程序的情况下进行设置?

解决方法

我相信这是不可能的,但是我发现了本文中介绍的一些变通办法,不确定这些方法是否可靠(或根本无法工作):https://tarunlalwani.com/post/change-profile-settings-at-runtime-firefox-selenium/

,

根据Selenium的当前实现,一旦您为GeckoDriver配置了特定的功能并初始化了会话以打开浏览上下文,您无法更改功能运行时。即使您能够检索运行时功能,也仍然无法将其改回。

因此,为了更改 Firefox用户首选项,您必须启动一个新的 WebDriver 会话。

注意:但是,您可以在每次运行时更改Firefox的,并可以在How to change user agent for Firefox webdriver in Python?

中找到相关的讨论。

参考

以下是@JimEvans clear and concise comment(截至13年10月24日,13:02)与代理设置功能有关:

为任何给定的驱动程序设置代理时,仅在创建WebDriver会话时才进行设置;它不能在运行时更改。即使您具有创建的会话的功能,也将无法更改它。因此,答案是,不,如果要使用其他代理设置,则必须开始新的会话。


Outro

您可以在以下位置找到几个相关的详细讨论: