我正试图用恶作剧使用水豚来登录亚马逊......
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将被加载到该页面上的其他javascripts。
我不知道为什么此时不会加载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"])
我尝试了很多事情,试图了解正在发生的事情,但我是空洞的。
对于我可能会在哪里或可能会发生什么的任何想法都将非常感激。
答案 0 :(得分:0)
如果页面上有jQuery,则您很可能必须使用evaluate函数来输入页面的上下文。 CasperJS有这个图http://docs.casperjs.org/en/latest/_images/evaluate-diagram.png http://phantomjs.org/api/webpage/method/evaluate.html
执行是沙箱,网页无法访问幻像 对象,它无法探测自己的设置。
答案 1 :(得分:0)
执行被沙箱化,网页无法访问幻像对象,并且无法探查自己的设置。