Capybara没有找到javascript

时间:2011-03-08 17:24:59

标签: ruby cucumber capybara

我是Capybara测试的新手,我遇到了一些问题。

我有一个我想要运行的场景,这是步骤实现:

When /^I select the signin link$/ do
  click_link 'Sign in'
end

我尝试使用xpath,css访问此链接,并尝试了within实现。 Capybara似乎无法找到它,并且在所有情况下都会返回Capybara::ElementNotFound例外。

当我在没有JavaScript的情况下加载网页时,链接不可见,我想知道这是不是为什么Capybara找不到它。我找到了trigger方法,但我不确定它是如何工作的。有没有人有trigger的工作实例,或者我应该做什么的任何其他想法?

1 个答案:

答案 0 :(得分:3)

您是否使用selenium webdriver来运行此测试?听起来你正在尝试运行需要javascript来查看某些元素的场景,而不使用支持javascript的驱动程序。

.feature文件中,您只需在方案之前添加此行:

@javascript
Scenario:  My Scenario
  When blah blah blah
  ...

@javascript标签告诉capybara使用selenium-webdriver来运行测试。它将启动firefox并完成测试 - 允许所有JavaScript功能工作。这会大大减慢测试速度,所以只有在测试ajax-y和javascript-y行为时才使用它。

如果仍然无效,您可以使用此步骤:

Then show me the page
When I select the signin link

将在该页面的当前状态下,在新浏览器中为您打开页面,以便您进行检查。