Wie aktiviere ich die Unterstützung für Geolokalisierung in chromedriver?
Brauche ich zum testen einer JS-geolocation-Funktionalität mit Selen und ich bin mit chromedriver, um den test auf die neueste Chrome.
Das problem ist nun, dass Chrome fordert mich auf, zum aktivieren von Geolocation, die während der test-und dass ich nicht wissen, wie Sie klicken Sie auf die kleine Leiste auf Laufzeit, also ich bin verzweifelt auf der Suche nach einem Weg zu beginnen die chromedriver und chrome mit einigen option oder trigger zu aktivieren, das standardmäßig. Alle, die ich finden konnte hier war jedoch, wie kann ich deaktivieren der geolocation insgesamt.
Wie kann ich dieses Problem lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Abschnitt bekannte Probleme der chromedriver wiki Sie sagte, dass Sie Nicht festlegen, ein benutzerdefiniertes Profil
Dies ist der Grund, warum es scheint mir, dass @Sotomajor Antwort, die über ein Profil mit Chrome nicht, mit firefox funktioniert nicht.
In einem meiner integration tests, die ich vor dem gleichen Problem. Aber da war ich nicht besorgt über die real-geolocation-Werte, alles, was ich zu tun hatte, ist zu mock-Fenster.navigator.gelocation
In Sie java-test-code, der diese Problemumgehung zu vermeiden, Chrom geoloc Genehmigung info-bar.
latitude (555) und Länge (999) Werte hier sind nur test Wert
Ansatz, der arbeitete für mich in Firefox war, diese Website zu besuchen manuell zuerst, geben Sie die Berechtigungen und kopieren Sie danach firefox-Profil irgendwo außerhalb und erstellen von selenium-firefox-Instanz mit diesem Profil.
Also:
cp -r ~/Library/Application\ Support/Firefox/Profiles/tp3khne7.default - /tmp/ff.Profil
Erstellen von FF-Instanz:
Ich bin mir ziemlich sicher, dass etwas ähnliches angewandt werden sollen, um Chrome. Obwohl die api von Profil laden ist ein bisschen anders. Sie können es hier: http://code.google.com/p/selenium/wiki/ChromeDriver
Hier ist, wie ich es Tat mit capybara für Gurken-tests
Und es gibt Links zu anderen nützlichen Profil-Einstellungen: pref_names.cc
Werfen Sie einen Blick auf "Tweaking Profil-Einstellungen" in RubyBindings
Als die für Ihre erste Frage:
Sollten Sie starten von Firefox manuell einmal, und wählen Sie das Profil, das Sie verwenden, für Selen.
Typ
about:permissions
in die Adresszeile eingeben; suchen Sie den Namen Ihres host und wählen Sieshare location : "allow"
.Das ist alles. Jetzt ist Ihre Selenium-Testfälle werden nicht sehen, die gefürchtete browser-dialog, die nicht in die DOM.
Den einfachsten bis hin zu geoLocation-set ist nur naviaget auf die url und klicken Sie auf zulassen Standort von Selen. Hier ist der code für refrence
Wir haben gerade einen anderen Ansatz, der ermöglicht uns, die geolocation-auf chrome (derzeit 65.0.3325.181 (Build officiel) (64-bit)), ohne Spott die native javascript-Funktion.
Die Idee ist zu ermächtigen, den aktuellen Standort (vertreten durch
BaseUrls.Root.AbsoluteUri
), um Zugriff auf geolocation-Informationen.Nahm ich Ihre Methode, aber Sie kann nicht arbeiten. Ich habe nicht finden "BaseUrls.Root.AbsoluteUri" in den Chrome-Einstellungen config. Und verwenden Sie ein Skript für den test