如何在Capybara中禁用JavaScript

时间:2014-10-20 23:54:46

标签: ruby capybara

我正在使用Capybara填写表格并下载结果。

填写表单时有点慢,我想检查JavaScript是否是罪魁祸首。

如何关闭JavaScript?

Ruby代码与以下内容类似,但不完全相同(以下内容不会重现错误消息,但有点慢)。

require "capybara"

url = "http://www.hiv.lanl.gov/content/sequence/HIGHLIGHT/highlighter.html"
fasta_text = [">seq1", "gattaca" * 1000, ">seq2", "aattaca" * 1000].join("\n")

session = Capybara::Session.new(:selenium)

# Code similar to this was run several times    
session.visit(url)
session.fill_in('sample', :with => fasta_text)
session.click_on('Submit')

我得到的错误(使用我的真实代码,但不是我上面的代码)

  

警告:无响应的脚本

     

此页面上的脚本可能正忙,或者可能已停止响应。   您可以立即停止脚本,在调试器中打开脚本,或者让它   脚本继续。

     

脚本:chrome://browser/content/tabbrowser.xml:2884

我没有将Capybara作为测试的一部分或作为规范的一部分运行。

要确认我当前编写的代码已启用JavaScript(我想禁用此功能),请执行

url = "http://www.isjavascriptenabled.com"
session = Capybara::Session.new(:selenium)
session.visit(url)

表示已启用JavaScript。

1 个答案:

答案 0 :(得分:0)

如果您已指定javascript_browser

,Capybara仅使用JavaScript
Capybara.javascript_driver = :poltergeist

如果您已在规范中指定js: true作为元数据:

context "this is a test", js: true do

检查这两件事。如果他们不在那里并且测试在浏览器中运行或使用Poltergeist,那么它可能不会使用JavaScript。