让Cucumber测试包含Javascript的场景

 

初学ROR就像Terra Nova中人类回到了史前新世界一样, Ruby和Rails分别给了我很多惊喜.

 

在RecruitingOnRails Beach项目中也遇到了一些问题, 其中一个对我们BDD阻碍比较大的问题是Cucumber在默认情况下无法运行Javascript, 而我们正好需要通过使用javascript实现在一个表单中点击不同按钮需要将请求Post或Get到特定地址.  我们通过如下几步来使Cucumber支持Javascript

 

1. 首先下载ChromeDriver在http://code.google.com/p/chromedriver/downloads/list

 

2. 在解压缩之后尝试直接运行, 你应该看到类似这样的提示:

Started ChromeDriver

port=9515

version=19.0.1068.0

og=/Users/twer/chromedriver.log

 

3. 按Control+C停止服务, 并且将这个文件拷贝到/usr/local/bin/(需要su or 在cp命令前加sudo)

 

系统环境准备到此结束, 接着我们需要修改rails项目中的一些文件

 

4. 打开features/support/env.rb

在任意位置加入:

 

Capybara.register_driver :chrome do |app|

  Capybara::Selenium::Driver.new(app, :browser => :chrome)

end

 

Capybara.javascript_driver = :chrome

 

5. 在你希望运行js的Scenario上注解@javascript

 

其他的一些注意事项:

 

1. 如果存在confirm弹出窗, 请使用

page.driver.browser.switch_to.alert.accept 相当于点击ok

page.driver.browser.switch_to.alert.dismiss 相当于点击no

 

2. 经过我尝试,文件下载测试可能无法找到正确的输出~

 

你可能感兴趣的:(JavaScript)