如何打开黄瓜,水豚和硒的多个并发会话?

Aub*_*nes 1 tdd selenium ruby-on-rails capybara

我正在为我们的(RoR 2.3.5)网站修复一些旧的集成测试,一些场景(及其行为)取决于多个用户同时登录.曾几何时,这些工作......三个工程师和18个月前.

我们的基本情景是用黄瓜写成的,水豚与硒结合.我已经尝试了Capybara :: Session.new和open_session的所有变化,我可以想象.这些要么以编程方式成功,而是继续使用现有的硒窗口; 或者,它们导致一些测试方法不存在.

我也尝试过使用webrat进行"二级"会话,但无法说服黄瓜在场景中单步切换驱动程序(尽管它确实在场景之间切换).

我完全是众所周知的小溪吗?什么是令人敬畏的是selenium打开多个浏览器作为多个unix用户,以便他们不共享会话状态,然后登录到网站.但是,我不知道在哪里我甚至会开始攻击它.

老实说,在这一点上,我甚至不知道我正在使用什么工具,哪些工具负责哪些功能.潜入水豚和黄瓜的代码会产生数百行元编程魔法,它们会以某种方式累积到测试框架中.尽管我以前年轻的热情,但这真的让我厌恶TDD.

jni*_*las 5

尝试升级到0.4.0.rc. Selenium现在允许多个sesssions(这将启动多个浏览器,只是你知道).但是它仍然没有高级API,所以你必须手动实例化一个会话并使用它.

  • 像"Capybara :: Session.new(:selenium,MyRackApp)"之类的东西.如果您正在使用DSL,那么`Capybara :: Session.new(:selenium,Capybara.app)`应该可以解决问题.请注意,然后您需要在返回的会话对象上调用您想要的任何内容.有关更多详细信息,请参阅自述文件 (2认同)