Saltar al contenido

¿Cómo habilito el soporte de geolocalización en chromedriver?

Solución:

En la sección de problemas conocidos de la wiki de chromedriver, dijeron que No se puede especificar un perfil personalizado

Es por eso que me parece que la respuesta de @Sotomajor sobre el uso del perfil con Chrome como lo haría con Firefox no funcionará.

En una de mis pruebas de integración me enfrenté al mismo problema. Pero como no me preocupaba por los valores reales de geolocalización, todo lo que tenía que hacer era simular window.navigator.gelocation

En su código de prueba de Java, coloque esta solución para evitar la barra de información de permisos de geolocalización de Chrome.

chromeDriver.executeScript("window.navigator.geolocation.getCurrentPosition = 
    function(success){
         var position = {"coords" : {
                                       "latitude": "555", 
                                       "longitude": "999"
                                     }
                         }; 
         success(position);}");

Los valores de latitud (555) y longitud (999) aquí son solo valores de prueba

El enfoque que funcionó para mí en Firefox fue visitar ese sitio manualmente primero, otorgar esos permisos y luego copiar el perfil de Firefox en algún lugar afuera y crear una instancia de selenium firefox con ese perfil.

Entonces:

  1. cp -r ~ / Biblioteca / Aplicación Soporte / Firefox / Perfiles / tp3khne7.default /tmp/ff.profile

  2. Creando instancia FF:

    FirefoxProfile firefoxProfile = new FirefoxProfile(new File("/tmp/ff.profile"));
    FirefoxDriver driver = new FirefoxDriver(firefoxProfile);
    

Estoy bastante seguro de que algo similar debería aplicarse a Chrome. Aunque la API de carga de perfil es un poco diferente. Puedes consultarlo aquí: http://code.google.com/p/selenium/wiki/ChromeDriver

Así es como lo hice con capibara para pruebas de pepino

Capybara.register_driver :selenium2 do |app|      
  profile = Selenium::WebDriver::Chrome::Profile.new
  profile['geolocation.default_content_setting'] = 1

  config = { :browser => :chrome, :profile => profile }    
  Capybara::Selenium::Driver.new(app, config)
end

Y hay un enlace a otras configuraciones de perfil útiles: pref_names.cc

Eche un vistazo a “Ajustar las preferencias de perfil” en RubyBindings

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *