«TypeError: undefined не является конструктором» с Capybara (PhantomJS)

1

У меня ошибка JavaScript с тестом функции Capybara. Но ошибка не возникает с обычным браузером Chrome. Ниже приведен код JavaScript.

document.addEventListener('DOMContentLoaded', function(){
  var enable = function(){
    document.querySelectorAll('input').forEach(function(e){ e.disabled = false });
  }
  /* do something ..*/
  enable();
}

Сообщение об ошибке - TypeError: undefined is not a constructor (evaluating 'form.querySelectorAll('input').forEach(function(e){ e.disabled = false })'). Я думаю, что это связано с тем, что forEach возвращает undefined.

  • 0
    нет, forEach делает и должен возвращать undefined - хотя не все реализации NodeList (что возвращает NodeList ) имеют метод forEach - см. developer.mozilla.org/en/docs/Web/API/…
  • 0
    Я думал, что PhantomJS почти такой же, как Chrome. Но у меня это не правильно. Спасибо!
Показать ещё 2 комментария
Теги:
capybara
phantomjs

1 ответ

3
Лучший ответ

forEach - это метод ES 5.1/6, но текущая версия PhantomJS поддерживает только до ES 5. Вам нужно либо полифонировать forEach, либо переписать свой код с использованием совместимых с ES 5 методов.

  • 0
    Я понял! Я попробую это по-другому или использую polyfill. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню