2017-10-17 10 views
0

Lorsqu'une application qui exécute Selenium utilise le pilote Chrome, elle lance une version autonome de Chrome qui ne correspond en aucun cas à Chrome utilisant le profil principal, c'est-à-dire qui contient notre historique de recherche, mots de passe, cookies, etc.Le pilote Chrome Sélénium lance le "vrai" Chrome

Existe-t-il un moyen de dire au pilote Chrome de lancer le "vrai" Chrome et non une version autonome? J'imagine que cela pourrait être un défaut de sécurité, mais j'aimerais savoir.

+4

Il existe une section "profil" du sélénium. Vous pouvez envisager d'utiliser cela. – IamBatman

Répondre

3

Après avoir étudié pendant un petit moment que j'ai découvert qu'il est possible de fournir l'objet ChromeDriver avec des informations sur le dossier de données utilisateur utilisé par Chrome en envoyant comme un argument dans l'objet ChromeOptions comme ceci:

Exemple en Java

ChromeOptions options = new ChromeOptions(); 
options.addArguments("user-data-dir=C:/Users/[UserName]/AppData/Local/Google/Chrome/User Data"); 
ChromeDriver driver = new ChromeDriver(options); 

Cela a ouvert le "vrai" Chrome en utilisant tous nos paramètres.

+2

Bien fait ... vous devriez accepter ceci comme réponse. – IamBatman

+0

Veuillez noter que la raison pour laquelle le pilote ouvre Chrome avec un profil «vierge» est de rendre vos tests plus robustes. Si un utilisateur modifie manuellement les paramètres de Chrome qui auront un impact sur votre application testée, vous pouvez rencontrer un comportement inexpliqué de vos tests. Déboguer des situations comme celle-ci peut vraiment absorber le temps que vous préférez passer à écrire de nouveaux tests. Je vous recommande d'identifier les paramètres dont vos tests ont réellement besoin et de les incorporer directement dans votre objet ChromeOptions, plutôt que de les utiliser dans le profil de cet utilisateur. –