Selenium不适用于Cucumber / Capybara(开箱即用) - MacOSX

时间:2011-02-11 00:25:34

标签: macos ruby-on-rails-3 selenium cucumber capybara

我在试图让一个黄瓜的例子在硒下运行时遇到了麻烦。我正在跑步

  • Rails3中
  • 黄瓜0.10.0
  • Capybara 0.4.1.2

https://github.com/jnicklas/capybara上阅读doco,看来我需要在selenium下运行示例所需的全部内容是:

步骤1:使用@javascript

添加方案前缀
@javascript
Scenario: User does x
...

步骤2:配置env.rb告诉capybara使用哪个驱动程序:

Capybara.javascript_driver = :selenium

当我跑步时:

bundle exec cucumber feature/myfeature.feature

我得到以下内容:

Using the default profile...
F------------F

Failing Scenarios:
cucumber features/myfeature.feature:7 # Scenario: User does x

1 scenario (1 failed)
12 steps (12 skipped)
0m0.012s

没有firefox窗口。没有。它运行,挂起和死亡。

因此,为了检查水豚和selenium webdriver是否正常工作,我写了以下代码:

require 'capybara'
require 'capybara/dsl'

Capybara.default_driver = :selenium

class Test
   include Capybara
   def dotest
     visit('http://www.stackoverflow.com')
   end
end

Test.new.dotest

使用以下方式运行:

bundle exec ruby /tmp/test.rb

有效。 Firefox打开窗口并导航到www.stackoverflow.com。

那么如何获取诊断信息以了解黄瓜对水豚的作用呢?

我正在运行OSX10。,Ruby 1.8.7和Firefox 3.6.13。

2 个答案:

答案 0 :(得分:7)

好的......我发现了我的问题。在黄瓜碗的某个地方依赖于DatabaseCleaner,当你使用selenium驱动程序时,它会被触发一次。失败声明:

F______________F

告诉我在安装和拆卸过程中发生了故障。黄瓜没有报告异常,即使使用-b它也没有做任何事情。

我是如何发现问题的:

  1. 将ruby-debug添加为gem依赖

  2. 将“ruby-debug”添加到env.rb

  3. 我在env.rb中添加了以下语句:

  4. Before do
        breakpoint; 0
    end
    
    1. 使用bundle exec运行该功能。调试器启动了。

    2. 输入 cat StandardError ,它会在抛出“StandardError”时告诉调试器断点。 StandardError是Cucumber中所有错误的基类。我们想要做的是找出错误发生的位置和原因。

    3. 输入 cont 告诉调试器恢复

    4. 将数据库清理程序添加为gem依赖项后,一切都消失了。 Firefox开始启动,事情开始按照宣传的方式发挥作用。

答案 1 :(得分:0)

你试过吗

bundle exec cucumber feature/myfeature.feature

!!