我在一个标准的Cucumber / Capybara驱动的Rails应用程序中使用Webkit / Chromedriver。
效果很好,当场景以非无头模式运行时,我可以看到浏览器在做什么。
能够在"驱动"中点击这对我有很大帮助。在场景的特定点处使用chrome。对于咯咯笑声,我在某个步骤中插入了byebug
。此时,byebug控制台打开,Cucumber / Capybara显然停了下来,并且chrome坐在那里等待我退出byebug控制台。
如果我再点击Chrome窗口,它会无限期挂起。原因很清楚=>在这个时间点,Chrome有一个请求我的测试中的应用程序,并且因为它位于byebug
,它无法处理请求。
我需要做些什么来完成这项工作(如果可能的话)?我熟悉所有这些工作的架构(在正常操作中,当Capybara或Webkit驱动我的chrome时)。但是在场景中的某个时刻停下来点击自己会很好,因为这样我就可以节省很多时间来手动设置测试数据(包括浏览器会话和所有这些)。请注意byebug
对我来说并不重要,如果有一些我可以在一个步骤中执行的解决方案,这会使Cucumber无限期地等待并放弃对我的控制,这就足够了。
答案 0 :(得分:2)
尝试在byebug控制台上调用sleep 10
。
浏览器只能由一个进程“驱动”,调用sleep会释放chromedriver对浏览器的控制(对于睡眠时间的长度),因此您可以使用Web Inspector或单击元素。