【发布时间】: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