我是Capybara测试的新手,我遇到了一些问题。
我有一个我想要运行的场景,这是步骤实现:
When /^I select the signin link$/ do
click_link 'Sign in'
end
我尝试使用xpath,css访问此链接,并尝试了within
实现。 Capybara似乎无法找到它,并且在所有情况下都会返回Capybara::ElementNotFound
例外。
当我在没有JavaScript的情况下加载网页时,链接不可见,我想知道这是不是为什么Capybara找不到它。我找到了trigger
方法,但我不确定它是如何工作的。有没有人有trigger
的工作实例,或者我应该做什么的任何其他想法?
答案 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
将在该页面的当前状态下,在新浏览器中为您打开页面,以便您进行检查。