Javascript 引用错误:Can';找不到变量:带有Poltergeist/Capybara的jQuery 我想做什么

Javascript 引用错误:Can';找不到变量:带有Poltergeist/Capybara的jQuery 我想做什么,javascript,jquery,phantomjs,capybara,poltergeist,Javascript,Jquery,Phantomjs,Capybara,Poltergeist,我正在尝试使用水豚和恶鬼在这个URL登录亚马逊 https://developer.amazon.com/rp/sales.html 很简单,除了当我试图提交表单时,我得到了错误。。。 ReferenceError:找不到变量:jQuery 但是,jQuery的源代码在页面上,应该已经加载了 我用来登录的代码是 visit "https://developer.amazon.com/rp/sales.html" fill_in('ap_email', with: user) fil

我正在尝试使用水豚和恶鬼在这个URL登录亚马逊

https://developer.amazon.com/rp/sales.html
很简单,除了当我试图提交表单时,我得到了错误。。。 ReferenceError:找不到变量:jQuery

但是,jQuery的源代码在页面上,应该已经加载了

我用来登录的代码是

  visit "https://developer.amazon.com/rp/sales.html"
  fill_in('ap_email', with: user)
  fill_in('ap_password', with: password)
  click_on('signInSubmit-input')
Submit触发javascript调用以验证输入。这将使用jQuery,当它使用jQuery时,将抛出错误

我所期望的 我希望当我访问登录页面时,jquery会在该页面上加载其他javascript

我不知道为什么jQuery不会在此时加载。Phantomjs会加载页面并加载页面上引用的jQuery,不是吗

我尝试过的事情 时间问题? -探访后增加睡眠

配置问题?

  • 我的当前配置

    include Capybara::DSL
    Capybara.default_driver = :poltergeist
    Capybara.register_driver :poltergeist do |app|
        Capybara::Poltergeist::Driver.new(app, phantomjs: Phantomjs.path)
    end
    Capybara.ignore_hidden_elements = false
    
  • 试图强制jQuery加载

    Capybara::Poltergeist::Driver.new(app,
                                  phantomjs: Phantomjs.path,
                                  extensions: ["handlers/jquery.js"])
    
我尝试了很多事情试图让我的头脑了解正在发生的事情,但是我的头脑是空的


如果您能想到我可能会去哪里或者会发生什么,我们将不胜感激。

如果jQuery在页面上,您很可能需要使用求值函数来输入页面的上下文。CasperJS有这个图


执行已沙盒,网页无法访问幻影 对象,它无法探测自己的设置


执行是沙盒式的,网页无法访问幻影对象,也无法探测其自身设置。

这可能是新用户提出的最好问题,如果没有猜测,仍然无法回答。这可能与SSL和web安全有关。我不知道这在capybara中是如何实现的,但是您尝试将--ssl协议=任何--ignore ssl errors=true--web安全=false传递给phantomjsGood THEARD,Artjom,但它没有帮助。我想我需要采取不同的策略,看看不同的车手是否有相同的问题。我确实尝试过webkit,但它也有同样的错误,但实际上观察发生的情况可能会发现其他一些东西。使用selenium和FF,我没有发现这个错误。所以,问题在于我是如何安排的。还在看。不,这几乎肯定是幻影的问题。它总是有一些问题。你试过使用PhantomJS2吗?