我的设置是使用poltergeist作为我所有测试的Capybara驱动程序,包括JS和非JS。
# spec/rails_helper.rb
require "capybara/poltergeist"
# ...
# ...
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, js_errors: true)
end
Capybara.configure do |config|
config.ignore_hidden_elements = true
Capybara.default_driver = :poltergeist
Capybara.javascript_driver = :poltergeist
end
我有一些测试,我确认即使禁用了javascript,我的应用上的某些功能仍然有效。对于那些测试,我当然会使用js: false
禁用javascript。
describe "accessibility" do
describe "JavaScript disabled", js: false do
before(:each) { visit root_path }
it "user can still log in" do
# ...
end
end
end
但是,我注意到这些js:false
测试仍在使用JavaScript 。我可以通过在JavaScript中将调试语句打印到控制台日志来确认这一点。
有没有办法在使用poltergeist时禁用JavaScript?或者是否始终启用?将poltergeist用作非JS驱动程序甚至是有效的吗?
谢谢!
答案 0 :(得分:1)
不,似乎没有办法在没有Javascript的情况下使用poltergeist(除非你自己修改了poltergeist)。根据{{3}},它需要phantomjs的支持,这可以在this Github issue中获得,但不能在master中获得。