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

2023-11-26

我在尝试让黄瓜示例在硒下运行时遇到问题。我在跑

  • Rails3
  • 黄瓜0.10.0
  • 水豚0.4.1.2

阅读 docohttps://github.com/jnicklas/capybara,看来我需要获得一个在 selenium 下运行的示例,只需执行以下操作:

第 1 步:在场景前添加 @javascript 前缀

@javascript
Scenario: User does x
...

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

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

没有火狐窗口。没有什么。它运行、挂起和死亡。

因此,为了检查水豚和 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。


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

F______________F

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

我是如何发现问题的:

  1. 添加 ruby​​-debug 作为 gem 依赖项

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

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

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

  2. Type in cat 标准错误当抛出“StandardError”时,它会告诉调试器断点。 StandardError 是 Cucumber 中所有错误的基类。我们想要做的是找出错误在哪里抛出以及原因。

  3. Type in cont告诉调试器恢复

添加数据库清理器作为 gem 依赖项后,一切都消失了。 Firefox 开始启动,一切开始按照广告宣传的那样进行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium 不适用于 Cucumber/Capybara(开箱即用)- MacOSX 的相关文章

随机推荐