【问题标题】:ReferenceError: Can't find variable: jQuery with Poltergeist/CapybaraReferenceError:找不到变量:带有 Poltergeist/Capybara 的 jQuery
【发布时间】:2015-05-28 02:13:31
【问题描述】:

我要做什么

我正在尝试使用 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)
  fill_in('ap_password', with: password)
  click_on('signInSubmit-input')

提交会触发 javascript 调用以验证输入。这使用了 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"])
    

我已经尝试了很多事情,试图弄清正在发生的事情,但我一无所获。

任何关于我可能在哪里寻找或可能发生的事情的想法将不胜感激。

【问题讨论】:

  • 这可能是新用户提出的最好的问题,但仍然无法在没有猜测的情况下回答。
  • 可能与 SSL 和网络安全有关。我不知道这是如何在 capybara 中完成的,但是您尝试将 --ssl-protocol=any --ignore-ssl-errors=true --web-security=false 传递给 phantomjs
  • 好主意,Artjom,但没有帮助。我想我需要采取不同的策略,看看不同的司机是否有同样的问题。我确实尝试过 webkit,但它也有同样的错误,但实际上观察正在发生的事情可能会发现其他问题。
  • 将 selenium 与 FF 一起使用,我没有收到此错误。所以,问题必须在于我是如何设置的。还在寻找。
  • 不,这几乎肯定是 PhantomJS 的问题。它总是有某种问题。你试过使用 PhantomJS 2 吗?

标签: javascript jquery phantomjs capybara poltergeist


【解决方案1】:

如果页面上有 jQuery,您很可能必须使用评估函数来输入页面的上下文。 CasperJS 有这张图http://docs.casperjs.org/en/latest/_images/evaluate-diagram.png http://phantomjs.org/api/webpage/method/evaluate.html

执行是沙盒的,网页无权访问幻影 对象,它不能探测自己的设置。

【讨论】:

    【解决方案2】:

    执行是沙盒的,网页无法访问幻像对象,也无法探测自己的设置。

    【讨论】:

      猜你喜欢
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2018-04-24
      • 1970-01-01
      • 2016-10-30
      相关资源
      最近更新 更多