2012-05-07 52 views
3

好的。我知道我正在問一個陳腐的問題,但我發佈了這個問題,因爲我的問題沒有得到解決,儘管嘗試了各種鏈接提供的所有解決方案。Selenium + Firefox + HTTPS

我的約束 - 我不想使用保存的Firefox配置文件來保存網站的證書。

硒服務器版本 - 2.0b3

解決方案嘗試 -
1)http://seleniumhq.org/docs/05_selenium_rc.html#handling-https-and-security-popups
瀏覽器發射*火狐
硒開始trustAllSSLCertificates選項。
沒有幫助。 FF再次要求保存證書。

2)http://blog.mogotest.com/2010/04/13/how-to-accept-self-signed-ssl-certificates-in-selenium/
瀏覽器發射* firefoxproxy
硒開始trustAllSSLCertificates選項。
沒有幫助。

3)Selenium Testing HTTPs Trust All certificates working for FF but not IE

4)另外,我試圖創造我自己的cert_override.txt和填充5個字段作爲https://developer.mozilla.org/En/Cert_override.txt解釋,但所獲得的價值爲5場這是證書的序列號以及發行人名稱作爲base64編碼的字符串不是直接的,如http://tinyurl.com/ce4vn99中所解釋的。

5)使用記住證書例外插件火狐http://sejq.blogspot.in/2009/01/remember-certificate-exception.html是另一種選擇,但我還沒有能夠完全安靜地安裝它。當我們將xpi文件放在必需的目錄中時,下次Firefox啓動時,它會提示說它應該找到插件,並且應該繼續安裝。插件不會僅僅反映在瀏覽器中。如果任何人都可以至少幫我用FULL這個沉默的安裝,這將是偉大的!

我只想要的是,它可以在Firefox中使用。我對IE和Google Chrome不感興趣。

任何幫助提供的答案,而不僅僅是將其稱爲重複將不勝感激。

回答

0

因此,解決方案成爲上述第5點。 這是解決問題的步驟 -

1)從https://addons.mozilla.org/en-US/firefox/addon/remember-certificate-exception/

2下載記住證書異常XPI文件),解壓後得到一組文件。將它們保存在臨時文件夾中。 (temp_folder/extracted_files)

3)打開install.rdf文件並複製Description節點中存在的em:id節點的內容。

4)重命名剛剛使用此複製字符串創建的臨時文件夾。

5)將此文件夾放置在profile_name/extensions /目錄下。同時從您的配置文件夾中刪除extensions.cache/.ini/.rdf文件。這些需要被刪除,以防止用戶被提示他的配置文件已被更改,並且有一個新的插件被安裝。只有在3個文件被刪除的情況下,它纔會是完全無提示的安裝。

這可以使用腳本自動執行。

#!/bin/bash 
mkdir /tmp/addon 
cp -r ~/POC/remember_certificate_exception-1.0.0-fx.xpi /tmp/addon 
unzip /tmp/addon/remember_certificate_exception-1.0.0-fx.xpi -d /tmp/addon 
rm /tmp/addon/remember_certificate_exception-1.0.0-fx.xpi 
folder_name=$(cat /tmp/addon/install.rdf | grep -m 1 "<em:id>" | cut -f2 -d ">" | cut -f1 -d "<") 
mv /tmp/addon /tmp/$folder_name 
cp -r /tmp/$folder_name ~/.mozilla/firefox/*.default/extensions 
rm -f ~/.mozilla/firefox/*.default/extensions. 
+0

這些頁面在這個過程中非常有用 - http://forums.mozillazine.org/viewtopic.php?f = 38&t = 1259685&start = 0 http://askubuntu.com/questions/73474/how-to-install-firefox-addon-from-command-line-in-scripts –

0

我會建議硒的替代品。您是否試過Sahi?它基本上是一個非常類似的應用程序,它允許腳本化的瀏覽器控制,但在很多情況下,它似乎比Selenium更好。

從SAHI公司FAQ頁面:

它是如何比較硒?

Sahi更容易學習和使用測試人員。 Sahi的錄音機適用於所有瀏覽器。 Sahi自動等待AJAX​​和頁面加載。它不使用XPath,但使用更直觀的API,如_in和_near。 Sahi在幀,iframe,彈出窗口,帶有動態ID的站點,https站點,401認證站點等方面運行良好。它具有內置的HTML報告以及並行運行多個腳本的能力。

以我的經驗,這是準確的。 Selenium遇到了某些類型的瀏覽器事件,Sahi處理得好多了。

我知道這並不能解決您Selenium的問題,而且我知道如果您已經在Selenium中編寫了測試以在Sahi中重新執行測試,這可能不是您想要的解決方案因爲,但如果一切都失敗了,這可能值得考慮。

ps - 你沒有提及你的開發環境,但是有一個名爲Mink的基於PHP的測試工具,它與Sahi和Selenium集成在一起 - 也就是說你可以編寫單個測試腳本並使其工作在任何一個。我不知道其他語言的任何類似工具,但它可能有助於您在兩者之間遷移。

0

我已經彙總了一個示例,顯示如何使用Selenium測試HTTPS端點 - 而不忽略證書驗證錯誤。它顯示瞭如何使用可信的根CA設置硒客戶端,該證書可用於驗證正在測試的HTTPS端點提供的服務器證書。請參閱https://github.com/JeNeSuisPasDave/Selenium-and-TLS

該示例演示Chrome和Firefox Selenium節點。 Chrome會在系統可信證書庫中查找用於驗證的根CA證書; Firefox在當前配置文件內查找cert8.db文件。

我認爲這種方法很重要,因爲我認爲指示您的測試工具忽略證書錯誤是不必要的風險;這樣做最終可能會隱藏您希望在部署到生產環境之前所陷入的錯誤。

我寫了一篇關於此主題的短文,https://develves.net/blogs/asd/2017-02-20-selenium-and-tls/,但您真的只需要上面鏈接的示例回購。