12
votes

Manutention 'Choisissez un certificat numérique' avec Selenium webDiver Chrome

Lorsque j'ouvre une page avec Selenium webDriver, je reçois une boîte de dialogue Chrome "Choisissez un certificat". Le certificat par défaut est le bon, il vous suffit de cliquer sur le bouton OK. Mais j'ai un problème avec ça. J'ai un code Python: xxx

et après cela, je veux faire quelque chose comme: xxx

ou xxx

Le problème est que le code cesse d'exécuter sur la ligne drv.get (" https://example.com.com / Login "). WebDriver attend que la page se charge. Et avant cette ligne, il n'y a pas de boîte de dialogue Chrome.

Comment puis-je gérer cela?


0 commentaires

3 Réponses :


4
votes

Vous devrez utiliser quelque chose comme AutoIt:

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

Pourquoi vous demandez? C'est une boîte de dialogue OS, que sélénium ne fonctionne pas et probablement ne manipulera jamais, vous devrez donc vous tourner vers d'autres solutions (en C #, vous devez utiliser des méthodes d'API Win32 natives pour cliquer sur le bouton par exemple).


1 commentaires

Et que faites-vous sur Linux?



2
votes

Les certificats sont gérés par le système d'exploitation, pas le navigateur. Supprimer tout sauf le certificat nécessaire à partir de votre boutique de certificats de navigateur, puis configurez le navigateur pour sélectionner automatiquement le certificat lorsqu'un seul certificat est présent. Vous pouvez également créer un profil de navigateur et lancer votre programme de lancer ce profil ou éviter les tests sur HTTPS.


1 commentaires

Comment configurez-vous Chrome pour accepter le certificat par défaut sans demander?



2
votes

Avant de manipuler tout ce qui est ici, ajoutez ci-dessous de sorte qu'il ne sera pas gelé dès que vous naviguez / Triggert Le certificat apparaît. remetber pour ajouter la bonne attente de retour plus tard.

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


0 commentaires