2014-09-23 57 views
0

我对Rails,RSpec和Capybara很新颖,我试图设置一个自动测试套装,测试用户如何与网页进行交互。用Capybara测试用户视图

为此,我想知道是否有方法检查水豚(使用Selenium驱动程序2.43.0)是否“看见”某页面的某个区域。通过“看到”我的意思是,如果它在这一刻对用户是可见的。

E.g.我的页面上有一个按钮,可以一直滚动到底部,所以现在我想测试这些按钮是否真正达到其目的。

我在这个问题上找不到任何文档。我唯一发现的是如何让水豚滚动到底部,但这不是我想要的。

+0

如果按钮在页面上可用,那么它会自动找到它 – Mandeep 2014-09-23 10:31:25

+0

@Mandeep我不想知道如果Capybara可以在页面上找到一个按钮,但我想知道水豚在点击它后看到的部分。我想确保按钮使页面一直滚动到底部,例如 – 2014-09-23 16:09:49

+0

你究竟想要测试什么?你为什么不能检查焦点事件? – Mandeep 2014-09-23 16:17:50

回答

0

可以使用水豚的click_linkclick_button方法:

click_link 'Save' 

这将找到一个名为“保存”页面上的一个按钮,单击它。您还可以传递click_link元素ID,例如'div#save'

click_button 'Save' 

或者,您可以使用click_button

这将测试该按钮是否存在并检查该按钮是否工作。

+0

但这并不告诉我,如果按钮是在“用户视图”,当我执行click_link。据我了解,水豚会点击这个链接,即使它目前不在页面的可见部分(例如,如果你使用save_and_open_screenshot) – 2014-10-02 15:23:57

+0

这取决于你的意思是'目前不可见'。如果它被CSS或JavaScript隐藏,水豚仍然会点击该链接,但如果该链接是页面上的HTML元素,它只能点击该链接。水豚不会允许你测试JavaScript,因为你需要使用像Selenium这样的东西。 – 2014-10-02 18:03:13

+0

我对'当前不可见'的定义是,如果我运行命令save_and_open_screenshot,水豚会告诉我它在看到的情况。如果一个元素不在该屏幕截图上,我会说它目前不可见,因为我看不到它 – 2014-10-03 18:09:22