使用Capybara(PhantomJS)的“TypeError:undefined不是构造函数”

时间:2017-07-05 00:28:24

标签: javascript ruby-on-rails ruby phantomjs capybara

我在Capybara功能测试中遇到JavaScript错误。 但普通的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有关。

1 个答案:

答案 0 :(得分:3)

forEach是ES 5.1 / 6方法,但当前版本的PhantomJS仅支持ES 5.您需要使用ES 5兼容方法对forEach进行polyfill或重写代码。