Eri*_*ick 20 javascript jquery capybara phantomjs poltergeist
我正在尝试使用带有恶作剧的水豚来登录亚马逊这个网址...
https://developer.amazon.com/rp/sales.html
Run Code Online (Sandbox Code Playgroud)
很简单,除了当我尝试提交表单时,我收到错误... 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')
Run Code Online (Sandbox Code Playgroud)
提交触发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
Run Code Online (Sandbox Code Playgroud)试图强制jQuery加载
Capybara::Poltergeist::Driver.new(app,
phantomjs: Phantomjs.path,
extensions: ["handlers/jquery.js"])
Run Code Online (Sandbox Code Playgroud)我尝试了很多事情试图让我了解正在发生的事情,但我是空洞的.
任何关于我可能会在哪里或可能会发生什么的想法都将不胜感激.
小智 1
如果页面上有 jQuery,您很可能必须使用评估函数来进入页面的上下文。CasperJS有这个图http://docs.casperjs.org/en/latest/_images/evaluate-diagram.png http://phantomjs.org/api/webpage/method/evaluate.html
执行是沙盒的,网页无法访问幻像对象,也无法探测自己的设置。
| 归档时间: |
|
| 查看次数: |
2935 次 |
| 最近记录: |