首先,我想指出我对此有点陌生,因此希望这篇文章可以理解。
Gems:
rails (2.3.11
nokogiri (1.5.4)
cucumber (1.1.9)
capybara (1.1.2)
copybara-webkit (0.12.1)
现在我正在做一个项目,我正在尝试使用 cucumber 对 Rails Web 应用程序进行集成测试。由于 Web 应用程序严重依赖 javascript 和 ajax,我想使用可以处理此问题的 capybara 驱动程序。(我刚刚意识到 :rake_test 没有)但是我不想一直弹出浏览器窗口,因为这需要时间。所以我选择了 capybara-webkit。但是现在我更改了驱动程序,通过在我的 env.rb 中设置水豚的 javascript 驱动程序,我一直收到一个烦人的错误:
undefined method `invalid_element_errors' for #<Capybara::Driver::Webkit:0x9c50bf8> (NoMethodError)
./features/step_definitions/some_steps.rb:37
我在那一行的代码:
>> 35 select("something", :from => find("select[class='class_name']")[:id])
>> 36 click_link('javascript_link')
>> 37 click_link('another_javascript_link')
因为 id 是动态的,所以我在第 35 行使用了 find 。现在看来问题实际上是 find 方法,因为如果我在这一点之上添加另一个具有已知 id 的 find ,我会在该行上收到相同的错误。
如何摆脱这个问题,以便我可以使用 capybara-webkit?我在某处听说这是实际驱动程序中的一个问题,并且 github masterbranch 提供了一个修复程序,并且您可以以某种方式将您的 gem 链接到那里?如果是这样,任何人都可以解释如何做到这一点?