Поддерживает ли phantomJS геолокацию?

Я пытаюсь запустить тестовые примеры qunit с PhantomJS. Один из моих тестов зависает, когда phantomJS пытается получить доступ к функции navigator.geolocation DOM. тот же тест отлично работает в браузере, просто висит в консоли с phantomJS.

поддерживает ли phantomJS геолокацию? любое предложение?

прерывается в следующем условии if

  if(navigator.geolocation) {
            window.navigator.geolocation.watchPosition(updateLocation, null, { frequency: 3000 });
        }

person Sajeewa Wickramarachchi    schedule 09.04.2013    source источник


Ответы (2)


No.

Просто посмотрите пример features.js.

>phantomjs.exe features.js
Detected features (using Modernizr 2.0.6):

Supported:
  touch
  generatedcontent
  fontface
  flexbox
  canvas
  canvastext
  postmessage
  websqldatabase
  hashchange
  history
  draganddrop
  websockets
  rgba
  hsla
  multiplebgs
  backgroundsize
  borderimage
  borderradius
  boxshadow
  textshadow
  opacity
  cssanimations
  csscolumns
  cssgradients
  cssreflections
  csstransforms
  csstransitions
  localstorage
  sessionstorage
  webworkers
  applicationcache
  svg
  inlinesvg
  smil
  svgclippaths

Not supported:
  csstransforms3d
  webgl
  geolocation
  indexeddb
  video
  audio
person Cybermaxs    schedule 09.04.2013
comment
Большое тебе спасибо. Это было действительно полезно. Удалось перепрыгнуть через геолокацию - person Sajeewa Wickramarachchi; 10.04.2013

Вы можете добавить «геолокацию-фальшивую-поддержку» для запуска тестов или выполнения других действий, внедрив необходимые функции в DOM при инициализации. В следующем примере подделывается navigator.geolocation.getCurrentPosition, поэтому, когда веб-сайт в браузере вызывает эту конечную точку API, PhantomJS всегда будет возвращать настроенное местоположение.

webpage.onInitialized = function() {
    webpage.injectJs('geolocation.js')
};

геолокация.js:

window.navigator.geolocation = {
    getCurrentPosition: function (success, failure) {
        success({
            coords: {
                // Will always return Germany, Rostock
                latitude: 54.0834,
                longitude: 12.1004

            }, timestamp: Date.now()
        });
    }
};
person André    schedule 29.05.2016