2013-02-19 17 views
7

Quando apro una pagina con selenio web ricevo una finestra di dialogo cromata "Scegli certificato". Il certificato predefinito è quello giusto quindi devo solo fare clic sul pulsante OK. Ma ho problemi con questo. Ho codice python:Gestione 'scegliere un certificato digitale' con selenio webdriver chrome

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

e dopo che io voglio fare qualcosa di simile:

drv.switch_to_alert().accept() 

o

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

Il problema è che il codice interrompe l'esecuzione on line drv.get ("https://example.com/login"). Webdriver è in attesa di caricamento della pagina. E prima di quella linea non c'è una finestra di dialogo cromata.

Come posso gestirlo?

risposta

3

Dovrete usare qualcosa come AutoIt:

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

Perché si chiede? Si tratta di una finestra di dialogo del sistema operativo, che Selenium non gestisce e probabilmente non gestirà mai, quindi dovrai passare ad altre soluzioni (in C# dovresti utilizzare i metodi API Win32 nativi per fare clic sul pulsante, ad esempio).

+1

e cosa fai su Linux? –

1

I certificati sono gestiti dal sistema operativo, non dal browser. Elimina tutto tranne il certificato necessario dall'archivio certificati del browser e quindi configura il browser per selezionare automaticamente il certificato quando è presente un solo certificato. Puoi anche creare un profilo del browser e fare in modo che il tuo programma avvii questo profilo o eviti i test su HTTPS.

+2

come si configura chrome per accettare il certificato predefinito senza chiedere? –

1

prima di gestire qualsiasi cosa qui, aggiungere qui sotto in modo che non venga congelato non appena si naviga/si innesca il pop-up del certificato. Ricordatevi di aggiungere il waittime giusto più tardi.

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

dopo questo, quindi si può provare a utilizzare la tastiera o AutoIt qualunque.

Problemi correlati