简体   繁体   中英

ReferenceError: Can't find variable: jQuery with Poltergeist/Capybara

What I'm trying to Do

I'm trying to use capybara with poltergeist to log into amazon at this URL...

https://developer.amazon.com/rp/sales.html

Simple enough, except that when I try to submit the form, I get the error... ReferenceError: Can't find variable: jQuery ...

However, the source for jQuery is on the page and should have been loaded.

The code I'm using to log in is this...

  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 triggers a javascript call to validate input. This uses jQuery and when it does, the error is thrown.

What I Expected

I expected that when I visited the login page, that jquery would have been loaded with the other javascript on that page.

I have no idea why jQuery would not be loaded at this point. Phantomjs would have loaded the page and loaded the jQuery referenced on the page, no?

Things I've Tried

Timing Issue? - Added sleep after the visit.

Configuration Issue?

  • My Current Configuration

    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
  • Attempting to Force jQuery to Load

    Capybara::Poltergeist::Driver.new(app, phantomjs: Phantomjs.path, extensions: ["handlers/jquery.js"])

I've tried quite a few things in an attempt to get my head around what's going on but I'm coming up empty.

Any thoughts on where I might look or what may be going on would be greatly appreciated.

If jQuery is on the page you most likely have to use an evaluate function to enter the context of the page. CasperJS has this diagramhttp://docs.casperjs.org/en/latest/_images/evaluate-diagram.png http://phantomjs.org/api/webpage/method/evaluate.html

The execution is sandboxed, the web page has no access to the phantom object and it can't probe its own setting.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM