當(dāng)訪問一個https的網(wǎng)站,通常瀏覽器會收到一份證書,該證書包含了服務(wù)器的公鑰以及CA的簽名。
當(dāng)瀏覽器接收到服務(wù)器發(fā)過來的公鑰證書時有兩種情況:
瀏覽器已經(jīng)安裝了CA的公鑰解開CA的簽名,并HASH得到的證書內(nèi)容與之相比較,一致則相信由CA頒發(fā)過來的證書
瀏覽器并沒有CA的公鑰,也就解不來CA的簽名,用戶可以選擇相信,并把該站點(diǎn)設(shè)置為信任站點(diǎn)
大多數(shù)CA頒發(fā)證書是需要收費(fèi)的,因此也有很多https的網(wǎng)站用的是非權(quán)威服務(wù)器頒發(fā)的證書,使用瀏覽器打開此類https網(wǎng)站,瀏覽器檢測到證書非權(quán)威時為了安全性考慮會彈出提示信息,由用戶決定是否繼續(xù)訪問站點(diǎn)。平常我們選擇添加例外并繼續(xù)訪問就行了,下次訪問同個站點(diǎn)就不會彈出提示。但是用Selenium進(jìn)行測試時不希望遇到這種問題,因為selenium啟動firefox時,每次都會新建一個profile作為啟動的profile。這樣無論你添加多少次例外,測試的時候都需要手動選擇,打斷了測試,自動化無法繼續(xù)進(jìn)行。因此事先對Firefox進(jìn)行配置,使其相信被測站點(diǎn),使自動化更加容易和穩(wěn)定。
如何解決這個問題呢?思路很簡單
一、創(chuàng)建一個特殊profile,此profile里添加了測試站點(diǎn)為安全例外。
二、selenium啟動firefox時調(diào)用此profile,而不是創(chuàng)建新profile。
因為調(diào)用的profile預(yù)添加了站點(diǎn)為例外,訪問站點(diǎn)時便不會再彈出安全提示了。
下面看看具體如何設(shè)置
1、創(chuàng)建新的profile,打開cmd,進(jìn)入FireFox安裝路徑,然后輸入命令firefox -p
cd C:\Program Files (x86)\Mozilla Firefox
firefox -p
彈出如下對話框,點(diǎn)擊創(chuàng)建配置文件

在彈出的新窗口中點(diǎn)擊下一步,然后命名隨便,點(diǎn)擊完成,如下,這樣便生成了新的profile。注意復(fù)制一下保存路徑,等會兒會用到。

2、創(chuàng)建新的profile后第一步操作還沒完,我們得往profile里添加測試站點(diǎn)為安全例外。
這兒如下圖選擇新建的profile并點(diǎn)擊啟動Firefox按鈕,注意去掉勾選啟動時不詢問并使用選定的配置文件這個選項。如果勾選,以后每次啟動都是調(diào)用新建的profile,那么你會發(fā)現(xiàn)之前添加的Firefox插件,添加的書簽、證書等等都沒了。

以新的profile起動firefox后,我們直接訪問測試站點(diǎn),這個時候會彈出安全提示,我們根據(jù)提示添加安全例外。添加完可以在Firefox選項--高級--證書里查看是否存在添加的測試站點(diǎn),如下圖。當(dāng)然也可以直接在這兒點(diǎn)擊添加例外來添加站點(diǎn)。

到這兒,第一步就設(shè)置完了,我們創(chuàng)建了新的profile,也往profile里添加了例外。
3、selenium啟動firefox時調(diào)用此profile,而不是創(chuàng)建新profile。這步很簡單,看腳本就明白了。
