2017-06-03 61 views
1

导入所有设置,我为什么要做这样:硒 - 如何从现有的Firefox配置文件

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

我有什么企图

我创建了具有所需的“客户端密码保护的SSL证书”建立一个独立的Firefox的配置文件,选择automaticaly一个证书,并且一些手动代理设置(SOCKS 5) 。经过一番google搜索我已经把我的代码如下:

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选择它。

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

亲切的问候

丰富

版本:

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

回答

0

这里是回答你的问题:

使用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配置文件目录的绝对路径。
  3. 这里是我的Windows机器上打开一个现有的Firefox配置文件'debanjan'工作代码:

    应当指出的是,目前的硒Python绑定是geckodriver不稳定,看起来是建筑学具体。你可以在这里找到github discussionmerge。所以,你可能还需要通过Firefox的二进制文件的绝对路径,同时初始化webdriver的

    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) 
    

让我知道如果这个回答你的问题。

+0

我更改了配置文件的目录以指向Roaming中的版本,之前我曾在Local中使用该版本。我不知道这两者之间有什么区别,但它已经解决了这个问题。感谢您的帮助。 –

+0

很高兴能够帮助你。谢谢 – DebanjanB

相关问题