- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试使用 Poltergeist gem 设置 cookie 时遇到了问题,并且通过阅读 Poltergeist gem 上的已关闭问题,这似乎是我的用户错误问题,但我现在已经花了一整天的时间来尝试正确设置cookie,我似乎无法正确设置。
注意:此测试在 selenium 中运行良好,但由于 selenium 的运行时间问题,我想使用 poltergeist。
我正在处理的应用程序正在使用“_location”cookie 来确定一些整体设置,并且我需要在我第一次访问应用程序中的任何页面时访问该 cookie。否则,我会收到一个 javascript 错误,以查找由于未设置位置而未设置的值。
The README for the Poltergeist gem显示以下 cookie 用法
操作 cookie
以下方法用于检查和操作 cookie:page.driver.cookies
- 当前页面可访问的 cookie 哈希。键是 cookie 名称。这些值是 Cookie 对象,具有以下方法:name
, value
, domain
, path
, secure?
, httponly?
, expires
.page.driver.set_cookie(name, value, options = {})
- 设置一个cookie。选项散列可以采用以下键::domain
, :path
, :secure
, :httponly
, :expires
. :expires
应该是一个时间对象。page.driver.remove_cookie(name)
- 删除 cookie
-- 规范/spec_helper.rb
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, :debug => true)
end
Capybara.javascript_driver = :poltergeist
= link_to_function "test js", '$(this).html("js works")'
require 'spec_helper'
describe "Associating Articles with Products and Product Categories" do
before (:all) do
@user = create(:user, role: "admin")
5.times { create(:product_category) }
@product_categories = ProductCategory.all
@product_categories.each do |pc|
4.times { create(:product, product_category: pc) }
end
end
before (:each) do
visit new_user_session_path
page.driver.set_cookie("_location", "US")
page.driver.cookies
fill_in "Username Or Email", with: @user.email
fill_in "Password", with: @user.password
click_button "Sign In"
visit new_admin_article_path
end
it "supports js", :js => true do
click_link "test js"
page.should have_content("js works")
end
end
{"name"=>"visit", "args"=>["http://127.0.0.1:64554/users/sign_in"]}
{"error"=>{"name"=>"Poltergeist.JavascriptError", "args"=>[[{"message"=>"TypeError: 'null' is not an object (evaluating 'response.custentitydefault_shipping_location')", "stack"=>"TypeError: 'null' is not an object (evaluating 'response.custentitydefault_shipping_location')\n at http://127.0.0.1:64554/assets/non_deferred.js:12338\n at http://127.0.0.1:64554/assets/non_deferred.js:1076\n at http://127.0.0.1:64554/assets/non_deferred.js:1194\n at http://127.0.0.1:64554/assets/non_deferred.js:7539 in done\n at http://127.0.0.1:64554/assets/non_deferred.js:8325"}]]}}
{"name"=>"reset", "args"=>[]}
{"response"=>true}
F
Failures:
1) Associating Articles with Products and Product Categories supports js
Failure/Error: visit new_user_session_path
Capybara::Poltergeist::JavascriptError:
One or more errors were raised in the Javascript code on the page:
TypeError: 'null' is not an object (evaluating 'response.custentitydefault_shipping_location')
at http://127.0.0.1:64554/assets/non_deferred.js:12338
at http://127.0.0.1:64554/assets/non_deferred.js:1076
at http://127.0.0.1:64554/assets/non_deferred.js:1194
at http://127.0.0.1:64554/assets/non_deferred.js:7539 in done
at http://127.0.0.1:64554/assets/non_deferred.js:8325
# ./spec/requests/article_products_spec.rb:15:in `block (2 levels) in <top (required)>'
# ./spec/support/vcr.rb:14:in `block (2 levels) in <top (required)>'
describe "Associating Articles with Products and Product Categories" do
before (:all) do
@user = create(:user, role: "admin")
5.times { create(:product_category) }
@product_categories = ProductCategory.all
@product_categories.each do |pc|
4.times { create(:product, product_category: pc) }
end
end
before (:each) do
page.driver.set_cookie("_location", "US")
page.driver.cookies
visit new_user_session_path
fill_in "Username Or Email", with: @user.email
fill_in "Password", with: @user.password
click_button "Sign In"
visit new_admin_article_path
end
it "supports js", :js => true do
click_link "test js"
page.should have_content("js works")
end
end
{"name"=>"set_cookie", "args"=>[{:name=>"_location", :value=>"US", :domain=>"127.0.0.1"}]}
{"response"=>true}
{"name"=>"cookies", "args"=>[]}
{"response"=>[]}
{"name"=>"visit", "args"=>["http://127.0.0.1:64090/users/sign_in"]}
{"error"=>{"name"=>"Poltergeist.JavascriptError", "args"=>[[{"message"=>"TypeError: 'null' is not an object (evaluating 'response.custentitydefault_shipping_location')", "stack"=>"TypeError: 'null' is not an object (evaluating 'response.custentitydefault_shipping_location')\n at http://127.0.0.1:64090/assets/non_deferred.js:12338\n at http://127.0.0.1:64090/assets/non_deferred.js:1076\n at http://127.0.0.1:64090/assets/non_deferred.js:1194\n at http://127.0.0.1:64090/assets/non_deferred.js:7539 in done\n at http://127.0.0.1:64090/assets/non_deferred.js:8325"}]]}}
{"name"=>"reset", "args"=>[]}
{"response"=>true}
F
Failures:
1) Associating Articles with Products and Product Categories supports js
Failure/Error: visit new_user_session_path
Capybara::Poltergeist::JavascriptError:
One or more errors were raised in the Javascript code on the page:
TypeError: 'null' is not an object (evaluating 'response.custentitydefault_shipping_location')
at http://127.0.0.1:64554/assets/non_deferred.js:12338
at http://127.0.0.1:64554/assets/non_deferred.js:1076
at http://127.0.0.1:64554/assets/non_deferred.js:1194
at http://127.0.0.1:64554/assets/non_deferred.js:7539 in done
at http://127.0.0.1:64554/assets/non_deferred.js:8325
# ./spec/requests/article_products_spec.rb:15:in `block (2 levels) in <top (required)>'
# ./spec/support/vcr.rb:14:in `block (2 levels) in <top (required)>'
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, [phantomjs_options: [--cookies-file="#{::Rails.root}/spec/requests/cookies.txt"]] )
end
Capybara.javascript_driver = :poltergeist
phantom.addCookie({
'name': '_location',
'value': 'US',
'domain': 'localhost',
'expires': (new Date()).getTime() + 3600
});
Failures:
1) Associating Articles with Products and Product Categories supports js
Failure/Error: visit new_user_session_path
NoMethodError:
undefined method `cookie_jar' for nil:NilClass
# ./spec/requests/article_products_spec.rb:15:in `block (2 levels) in <top (required)>'
# ./spec/support/vcr.rb:14:in `block (2 levels) in <top (required)>'
Finished in 2.42 seconds
1 example, 1 failure
最佳答案
我相信您为 Poltergeist 指定选项的尝试与 PhantomJS 的选项混淆了。您的注册 block 应如下所示:
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, :phantomjs_options => ["--cookies-file=#{::Rails.root}/spec/requests/cookies.txt"])
end
关于ruby-on-rails-3 - 使用 Poltergeist PhantomJS Capybara 驱动程序设置 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13337183/
这个问题已经有答案了: Is there any way to accept only numeric values in a JTextField? (20 个回答) It's possible i
我使用戴尔 XPS M1710。笔记本电脑的盖子、侧面扬声器和前置扬声器都有灯(3 组灯可以单独调节)和鼠标垫下方的灯。在 BIOS 中,我可以更改这些灯的颜色,至少是每个组。另外,我可以在鼠标垫下打
我知道我可以使用 在 iOS 5 中打开设置应用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"
我有一个 Django 应用程序,我正在尝试为其设置文档。目录结构如下: - doc - project | - manage.py 我已经设置了路径以便 Sphinx 可以看到东西,但是当我尝试使用
我正在使用 768mb ram 运行 centos 5.5。我一直在日志中获取 server reached MaxClients setting, consider raising the MaxC
我在具有以下配置的服务器内运行了 Drupal 安装: StartServers 5 MinSpareServers 5 MaxSpareServers 15 MaxClien
是否可以使用 Microsoft.Web.Administration 包为给定的 location 配置 asp 设置? 我想以编程方式将以下部分添加到本地 IIS applicationHost.
我一直在阅读为 kube-proxy 提供参数的文档,但没有解释应该如何使用这些参数。我使用 az aks create 创建我的集群使用 azure-cli 程序,然后我获得凭据并使用 kubect
我想知道与在 PHP 中使用 setcookie() 函数相比,在客户端通过 JavaScript 设置一些 cookie 是否有任何明显的优势?我能想到的唯一原因是减少一些网络流量(第一次)。但不是
我有一个按钮可以将 body class 设置为 .blackout 我正在使用 js-cookie设置cookie,下面的代码与我的按钮相关联。 $('#boToggle').on('click'
我有一堆自定义的 HTML div。我将其中的 3 存储在具有 slide 类的 div 中。然后,我使用该幻灯片类调用 slick 函数并应用如下设置: $('.slide').slick({
我正在创建一个应该在 Windows 8(桌面)上运行的应用 我需要: 允许用户使用我的应用启动“文件历史记录”。我需要找到打开“文件历史记录”的命令行。 我需要能够显示“文件历史记录”的当前设置。
我刚买了一台新的 MacBook Pro,并尝试在系统中设置 RVM。我安装了 RVM 并将默认设置为 ➜ rvm list default Default Ruby (for new shells)
由于有关 Firestore 中时间戳行为即将发生变化的警告,我正在尝试更改我的应用的初始化代码。 The behavior for Date objects stored in Firestore
在 ICS 中,网络 -> 数据使用设置屏幕中现在有“限制后台数据”设置。 有没有办法以编程方式为我的应用程序设置“限制后台数据”? 或 有没有办法为我的应用程序调出具有选项的“数据使用”设置? 最佳
我正在尝试使用 NextJS 应用程序设置 Jest,目前在 jest.config.js : module.exports = { testPathIgnorePatterns: ["/.n
我最近升级到 FlashDevelop 4,这当然已经将我之前的所有设置恢复到原来的状态。 我遇到的问题是我无法在新设置窗口的哪个位置找到关闭它在方括号、大括号等之前插入的自动空格的选项。 即它会自动
有没有办法以编程方式访问 iPhone/iPod touch 设置? 谢谢。比兰奇 最佳答案 大多数用户设置可以通过读取存储在 /User/Library/Preferences/ 中的属性列表来访问
删除某些值时,我需要选择哪些设置来维护有序队列。我创建了带有自动增量和主键的 id 的表。当我第一次插入值时,没问题。就像 1,2,3,4,5... 当删除某些值时,顺序会发生变化,例如 1,5,3.
我正在尝试设置示例 Symfony2 项目,如此处所示 http://symfony.com/doc/current/quick_tour/the_big_picture.html 在访问 confi
我是一名优秀的程序员,十分优秀!