Comment puis-je activer la géolocalisation dans chromedriver?
J'ai besoin de tester un JS fonctionnalité de géolocalisation avec le Sélénium et je suis en utilisant chromedriver pour exécuter le test sur le dernier Chrome.
Le problème est maintenant que Chrome me demande d'activer la Géolocalisation pendant le test et que je ne sais pas comment sur petit bar de l'exécution, de sorte que je suis désespérément à la recherche d'un moyen de démarrer le chromedriver et de chrome avec une option ou d'un déclencheur pour activer cette fonction par défaut. Tout ce que je pouvais trouver ici était cependant comment je peux désactiver la géolocalisation tout à fait.
Comment puis-je résoudre ce problème?
OriginalL'auteur Thomas Keller | 2011-12-07
Vous devez vous connecter pour publier un commentaire.
Dans la section problèmes connus de la chromedriver wiki ils ont dit que vous Ne peut pas spécifier un profil personnalisé
C'est pourquoi il me semble que @Sotomajor réponse sur l'utilisation de profil avec Chrome comme vous le feriez avec firefox ne fonctionne pas.
Dans l'un de mes tests d'intégration, j'ai fait face au même problème. Mais parce que j'étais de ne pas se soucier du réel, la géolocalisation des valeurs, tout ce que j'avais à faire est de se moquer de la fenêtre.navigator.gelocation
En vous java de test de code à mettre cette solution de contournement pour éviter Chrome geoloc autorisation barre d'info.
latitude (555) et la longitude (999) les valeurs sont ici juste valeur de test
Les valeurs retournées devrait être scalaire numéros qui ne sont pas des chaînes de caractères.
OriginalL'auteur redochka
Approche qui a travaillé pour moi dans Firefox a été de visiter le site d'abord manuellement, donner les autorisations et ensuite copie de firefox profil quelque part à l'extérieur et de créer de sélénium firefox exemple avec ce profil.
Donc:
cp-r ~/Library/Application\ Support/Firefox/Profiles/tp3khne7.par défaut /tmp/ff.profil
La création de FF exemple:
Je suis assez sûr que quelque chose de similaire devrait être applicable à google Chrome. Bien que l'api de profil de chargement est un peu différent. Vous pouvez le vérifier ici: http://code.google.com/p/selenium/wiki/ChromeDriver
OriginalL'auteur Sotomajor
Voici comment je l'ai fait avec le capybara pour le concombre tests
Et il existe un lien utile à d'autres paramètres d'un profil: pref_names.cc
Prendre un coup d'oeil à "Bidouiller les préférences de profil" dans RubyBindings
OriginalL'auteur Tomasz Borowski
Quant à votre question initiale:
Vous devriez commencer à Firefox manuellement une fois - et sélectionnez le profil que vous utilisez pour le Sélénium.
Type
about:permissions
dans la ligne d'adresse; trouver le nom de votre hôte et sélectionnezshare location : "allow"
.C'est tout. Maintenant, votre Sélénium cas de test ne voient pas que redouté de dialogue du navigateur qui n'est pas dans les DOM.
OriginalL'auteur tbsalling
La plus simple de définir la géolocalisation est juste naviaget sur cette url et cliquez sur autoriser l'emplacement par le sélénium. Voici le code pour refrence
OriginalL'auteur Niraj Singh
Que nous venons de trouver une approche différente qui nous permet d'activer la géolocalisation sur google chrome (actuellement 65.0.3325.181 (Version officiel) (64 bits)), sans se moquer de la native de fonction javascript.
L'idée est d'autoriser le site actuel (représenté par
BaseUrls.Root.AbsoluteUri
) pour accéder à des informations de géolocalisation.OriginalL'auteur j_freyre