1

定义驱动程序后如何更改配置文件偏好?

profile = webdriver.FirefoxProfile()

driver = webdriver.Firefox(firefox_profile=profile)

经过一些代码需要设置用户代理

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

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

4

2 回答 2

1

我相信这是不可能的,但我发现本文中解释了一些解决方法,但不确定这些方法是否可靠(或完全有效):https ://tarunlalwani.com/post/change-profile-settings-at-runtime-火狐硒/

于 2020-09-20T10:45:38.207 回答
1

根据Selenium的当前实现,一旦您为GeckoDriver配置了特定的Capabilities并初始化会话以打开Browsing Context,您就无法更改功能运行时。即使您能够检索运行时功能,您仍然无法将它们改回来。

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

注意:但是,您可以在每次运行时更改 Firefox 的How to change user agent for Firefox webdriver in Python?中找到相关讨论?


参考

这是与代理设置功能相关的@JimEvans清晰简洁的评论(截至 2013 年 10 月 24 日 13:02):

当您为任何给定驱动程序设置代理时,它仅在创建 WebDriver 会话时设置;它不能在运行时更改。即使您获得了已创建会话的功能,您也无法更改它。所以答案是,不,如果你想使用不同的代理设置,你必须开始一个新的会话。


奥特罗

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

于 2020-09-20T13:50:55.363 回答