【问题标题】:launching browser with capybara使用 capybara 启动浏览器
【发布时间】:2013-06-12 20:54:37
【问题描述】:

我是 Capybara 的新手,希望有人能帮助我解决我遇到的问题。

作为测试的一部分,我有许多不同的测试规范文件。目前在每个规范文件的顶部,我创建了一个新的 Capybara 会话,其中包含以下内容: session = Capybara::Session.new(:selenium)。

当只有 1 个规范文件要运行时,这可以正常工作,但我发现当我尝试一起运行多个不同的规范文件测试(包含在一个文件夹中)时,它会为每个第一个创建一个新实例,我最终有很多不同的浏览器窗口。有没有办法我可以把它放在一个地方而不是每个测试规范文件中?

我以前有使用 cucumber 和 watir 的经验,你可以用它做的是在你的 env 文件中创建你的浏览器实例。你也可以在这里进行拆解。 rspec/capybara 中是否有等价物?我尝试将'session = Capybara::Session.new(:selenium)' 行放入我的规范帮助文件中,但是当我尝试运行测试时,我得到'未定义的局部变量或方法'session',即使我有'require' spec_helper' 在每个测试规范中。

对此的任何帮助都会很棒!如果以上任何一项不清楚,请告诉我,我会尽力澄清。

【问题讨论】:

    标签: rspec capybara


    【解决方案1】:

    Scott Alister 在他的blog 上描述了如何为 watir 和 rspec 执行此操作。您可以对 capybara 和 rspec 进行相同的调整。

    试试:

    session = Capybara::Session.new(:selenium)
    
    RSpec.configure do |config|
      config.before(:each) { @session = session }
    end
    

    请注意,您的测试将使用 @session 变量引用会话。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多