在测试运行期间浏览

时间:2018-03-22 10:12:59

标签: ruby-on-rails-4 cucumber capybara selenium-chromedriver

我在一个标准的Cucumber / Capybara驱动的Rails应用程序中使用Webkit / Chromedriver。

效果很好,当场景以非无头模式运行时,我可以看到浏览器在做什么。

能够在"驱动"中点击这对我有很大帮助。在场景的特定点处使用chrome。对于咯咯笑声,我在某个步骤中插入了byebug。此时,byebug控制台打开,Cucumber / Capybara显然停了下来,并且chrome坐在那里等待我退出byebug控制台。

如果我再点击Chrome窗口,它会无限期挂起。原因很清楚=>在这个时间点,Chrome有一个请求我的测试中的应用程序,并且因为它位于byebug,它无法处理请求。

我需要做些什么来完成这项工作(如果可能的话)?我熟悉所有这些工作的架构(在正常操作中,当Capybara或Webkit驱动我的chrome时)。但是在场景中的某个时刻停下来点击自己会很好,因为这样我就可以节省很多时间来手动设置测试数据(包括浏览器会话和所有这些)。请注意byebug对我来说并不重要,如果有一些我可以在一个步骤中执行的解决方案,这会使Cucumber无限期地等待并放弃对我的控制,这就足够了。

1 个答案:

答案 0 :(得分:2)

尝试在byebug控制台上调用sleep 10

浏览器只能由一个进程“驱动”,调用sleep会释放chromedriver对浏览器的控制(对于睡眠时间的长度),因此您可以使用Web Inspector或单击元素。