2010-08-26 103 views
4

我一直在使用Selenium RC進行功能測試。Selenium Testing HTTPs Trust所有證書都適用於FF但不適用於IE

當測試進入我們網站的登錄頁面並切換到HTTPS時,我不斷遇到問題。

我一直在改變設置,但每個瀏覽器都被拋棄了。

使用** iehta *和** *鉻作爲我的瀏覽器和信任所有SSL證書 & 保證乾淨會議設置,我可以得到FF3登錄到我們的網站,但是,IE拋出一​​個「有這個網站的安全證書有問題。「錯誤。 (我已經安裝證書)

爲什麼不信任所有證書都可以在IE中使用?

+0

這是一個解決方案嗎? http://stackoverflow.com/questions/3615722/selenium-cross-domain-and-https-problem – nzpcmad 2010-09-03 02:46:46

回答

0

對於一些隨機原因,IE現在看起來很好,所以我堅持使用配置,並嘗試對FF問題進行排序。

6

有兩個步驟。一種是使用「-trustAllSSLCertificates」選項啓動服務器,另一種是將瀏覽器配置爲使用Selenium服務器作爲其代理。 * iexploreproxy和* firefoxproxy爲您處理代理設置。如果使用「-trustAllSSLCertificates」標誌,Selenium(自2.0a5開始)將自動配置* firefox以將Selenium服務器用作代理。 *使用HTA的iexplore永遠不會被Selenium配置爲使用代理。所以,你需要先處理或通過自定義啓動器。

更多細節在下面的文章:http://nirvdrum.com/2010/04/13/how-to-accept-self-signed-ssl-certificates-in-selenium.html

+0

鏈接不起作用 – 2016-10-28 07:59:17

+0

我修復了鏈接。謝謝。 – nirvdrum 2017-08-11 16:33:53

1

我設法得到這種通過設置-trustAllSSLCertificates 和創造在Firefox默認的配置文件來工作。

到目前爲止,我可以愉快地使用這兩種瀏覽器,不用擔心出現不可信的證書錯誤。

值得注意的是,我告訴selenium使用的瀏覽器只是* chrome和* iehta。

0

此答案無法直接回答「爲什麼不信任所有證書都可以在IE瀏覽器中使用?」,但它確實爲可能引起問題的問題提供了答案。即對於將Selenium作爲Windows服務運行並且發現它不信任其自簽名證書的任何人。

的問題

IE不信任的根源,自簽字權的頒發證書,因此提出請求的用戶來決定,如果他/她想繼續和信任該網站的頁面。這可以防止任何硒測試進行。

將溶液在概念上比較簡單和邏輯,根和頒發證書必須安裝在計算機爲受信任的證書上。

但是,其複雜性在於讓運行Selenium RC的Windows服務信任證書,如果該服務在系統帳戶下運行。要糾正這一點,需要執行以下步驟。

  1. 將根證書安裝爲計算機範圍的可信證書頒發機構。
  2. 安裝頒發證書作爲全電腦中間認證機構

將證書添加到受信任的根證書頒發機構存儲在本地計算機

管理員是完成這一要求的最低組成員程序。

要證書添加到受信任的根證書頒發機構存儲在本地計算機

  1. 單擊開始,單擊開始搜索,鍵入mmc,然後按ENTER鍵。
  2. 在文件菜單上,單擊添加/刪除管理單元。
  3. 在「可用的管理單元」下,單擊「證書」,然後單擊「添加」。
  4. 在此管理單元將始終管理證書,單擊計算機帳戶,然後單擊下一步。
  5. 單擊本地計算機,然後單擊完成。
  6. 如果您沒有更多管理單元添加到控制檯,請單擊確定。
  7. 在控制檯樹中,雙擊「證書」。
  8. 右鍵單擊受信任的根證書頒發機構存儲。
  9. 單擊導入導入證書並按照證書導入嚮導中的步驟操作。

將證書添加到中間證書頒發機構存儲在本地計算機

  1. 在控制檯樹中,雙擊證書。
  2. 右鍵單擊中級證書頒發機構商店。
  3. 單擊導入導入證書並按照證書導入嚮導中的步驟操作。
1

我還沒有看到這個錯誤最新版本的Selenium RC,即2.31.0。如果您正在使用:

RemoteControlConfiguration rc= new RemoteControlConfiguration(); 
    rc.trustAllSSLCertificates(); 
    SeleniumServer server; 
    server=new SeleniumServer(rc); 
0

IE將證書錯誤顯示爲正常的html頁面。既然是這樣,你可以找到這個元素並且在它上面做一個.click()作爲臨時解決方法。 :)你可以創建一個cert helper類來完成它,只需執行cert.acceptCert(driver);

相關問題