2016-08-17 24 views
2

只是想知道,有没有一种方法,我可以告诉水豚只要点击一个元素,而不是等待整个页面加载?我有一个独立的步骤,每次测试都会增加40秒,因为它正在呼叫第三方服务。水豚部队行动

我想点击的元素只是为了进入下一步,是在屏幕上加载的第一个元素之一。

似乎浪费测试时间让这40秒钟等待每一个场景。

我拖网,但找不到解决方案。

回答

-1

据我知道水豚应该能够自动等元素,所以在这个例子:

page.find("#foo").should have_content("login failed") 

它会自动等到#foo元素出现与login failed文本。

默认的等待时间应该可以通过Capybara.default_wait_time设置进行配置。

1

当Capybara首先与页面交互取决于您使用的驱动程序以及额外页面数据的加载方式(异步地从setTimeout,inline等触发)。由于您似乎并不真正关心从第三方服务返回的数据,因此使用puffing-billy这类提供可编程代理的服务可能会更好,该服务可与Capybara一起使用,您可以使用它来伪造来自第三方服务的响应在需要时提供服务,和/或阻止连接尝试。另一种选择是使用某些驱动程序提供的黑名单(显然取决于您与Capybara使用哪个驱动程序)以防止与第三方服务的连接。

+0

谢谢,这是我会研究的。 – Tom