定义驱动程序后如何更改配置文件偏好?
profile = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_profile=profile)
经过一些代码需要设置用户代理
profile.set_preference("general.useragent.override", ua)
如何在不定义新驱动程序的情况下设置它?
定义驱动程序后如何更改配置文件偏好?
profile = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_profile=profile)
经过一些代码需要设置用户代理
profile.set_preference("general.useragent.override", ua)
如何在不定义新驱动程序的情况下设置它?
我相信这是不可能的,但我发现本文中解释了一些解决方法,但不确定这些方法是否可靠(或完全有效):https ://tarunlalwani.com/post/change-profile-settings-at-runtime-火狐硒/
根据Selenium的当前实现,一旦您为GeckoDriver配置了特定的Capabilities并初始化firefox会话以打开Browsing Context,您就无法更改功能运行时。即使您能够检索运行时功能,您仍然无法将它们改回来。
因此,为了更改Firefox 用户偏好,您必须启动一个新的WebDriver会话。
注意:但是,您可以在每次运行时更改 Firefox 的用户代理,您可以在How to change user agent for Firefox webdriver in Python?中找到相关讨论?
这是与代理设置功能相关的@JimEvans清晰简洁的评论(截至 2013 年 10 月 24 日 13:02):
当您为任何给定驱动程序设置代理时,它仅在创建 WebDriver 会话时设置;它不能在运行时更改。即使您获得了已创建会话的功能,您也无法更改它。所以答案是,不,如果你想使用不同的代理设置,你必须开始一个新的会话。
您可以在以下位置找到一些相关的详细讨论: