2017-06-03 69 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

相關問題