2013-02-19 190 views
7

處理'選擇數字證書'當我用selenium webdriver打開一個頁面時,我得到一個「對話框」選擇證書。默認證書是正確的,所以我只需點擊確定按鈕。但我有這個問題。我有Python代碼:用selenium webdriver chrome

drv = webdriver.Chrome() 
drv.get("https://example.com/login") 

之後,我想要做的事,如:

drv.switch_to_alert().accept() 

drv.switch_to_alert().send_keys(Keys.TAB) 
drv.switch_to_alert().send_keys(Keys.SPACE) 

的問題是,該代碼將停止上線drv.get執行(「https://example.com/login」)。 Webdriver正在等待頁面加載。在該行之前沒有鉻對話框。

我該如何處理?

回答

3

你將不得不使用類似的AutoIt:

http://www.autoitscript.com/site/autoit/

你問爲什麼?這是一個操作系統對話框,Selenium不會也可能永遠不會處理,因此您必須轉向其他解決方案(在C#中,您應該使用本機Win32 API方法來單擊按鈕)。

+1

和你在Linux上做什麼? – 2015-05-26 20:47:34

1

證書由操作系統管理,而不是瀏覽器。從瀏覽器的證書存儲中刪除所有必需證書,然後將瀏覽器配置爲只有一個證書存在時自動選擇證書。您也可以創建瀏覽器配置文件,讓程序啓動此配置文件或避免通過HTTPS進行測試。

+2

如何配置chrome接受默認證書而不詢問? – 2015-05-26 20:46:42

1

在處理任何事情之前,請在下面添加,以便在導航/觸發證書彈出時立即凍結。請記住稍後再添加正確的等待時間。

getDriver().manage().timeouts().pageLoadTimeout(1000, TimeUnit.MILLISECONDS); 

之後,那麼你可以嘗試使用鍵盤或autoIt什麼。