【问题标题】:Selenium - How to import all settings from an existing Firefox profileSelenium - 如何从现有的 Firefox 配置文件中导入所有设置
【发布时间】:2017-11-05 01:19:32
【问题描述】:

我为什么要这样做:

我需要自动化一个需要客户端 SSL 证书的网站。我理解这是一个无法使用 fp.set_preference() 指定的选项。我无法控制我要连接的服务器,因此我无法更改安全设置。

我尝试了什么

我创建了一个单独的 Firefox 配置文件,其中设置了所需的“受客户端密码保护的 SSL 证书”,自动选择一个证书和一些手动代理设置 (SOCKS 5)。经过大量谷歌搜索后,我将代码设置如下:

from selenium import webdriver
url = 'https://www.paininneck.co.uk'
fp = webdriver.FirefoxProfile(r"""C:\Users\
<user>\AppData\Local\Mozilla\Firefox\Profiles\<Firefox>""")
driver = webdriver.Firefox(fp)
driver.get(url)

问题:

浏览器确实打开了,但仍使用默认配置文件。我在其他配置文件中更改的所有设置都没有复制。我的代码中指定的配置文件仍然可以通过 Firefox UI 选择它。

我希望我错过了一些简单的事情,并且一直以来谷歌搜索都没有白费!我不愿意更改为默认设置,但是在调整默认配置文件以查看设置是否会复制之后,很明显它们不会,并且 Selenium 每次都在制作一个干净的副本。

亲切的问候

丰富

版本:

Python==3.6.1,
Selenium==3.4.3,
Firefox==53
gecko driver==v0.16.1
OS==Windows(Its for work dont judge me!)

【问题讨论】:

    标签: python python-3.x selenium firefox


    【解决方案1】:

    使用 Selenium 3.4.x、Python 3.6.1 以及 geckodriver v0.16.1 和 Mozilla Firefox 53.0,您可以通过以下步骤使用现有的 Firefox 配置文件:

    1. 在 Windows 框中找到 Firefox 配置文件目录。例如我的 Firefox 配置文件 "debanjan" 位于 C:\\Users\\AtechM_03\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles,名称为 w8iy627a.debanjan。
    2. 接下来,您必须在启动webdriver 时指定Firefox Profile 目录的绝对路径。
    3. 这是在我的 Windows 机器上打开现有 Firefox 配置文件 'debanjan' 的工作代码:

      需要注意的是,当前的 Selenium-Python 绑定对于 geckodriver 来说是不稳定的,并且看起来是特定于体系结构的。你可以在这里找到 github discussion 和 merge。因此,在初始化 webdriver

      时,您可能还需要传递 firefox 二进制文件的绝对路径
      from selenium import webdriver
      from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
      
      profile = webdriver.FirefoxProfile('C:\\Users\\AtechM_03\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\w8iy627a.debanjan')
      binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
      
      driver = webdriver.Firefox(firefox_profile=profile, firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
      url = 'https://www.paininneck.co.uk'
      driver.get(url)
      

    【讨论】:

    • 我将配置文件的目录更改为指向漫游中的版本,我之前使用的是本地版本。我不知道两者之间的区别是什么,但它已经解决了问题。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    相关资源
    最近更新 更多