初学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. 经过我尝试,文件下载测试可能无法找到正确的输出~