我在为 Cucumber 驱动程序创建浏览器实例时遇到问题。 如果我在“Before do”中的 env.rb 上创建对象为:
Before do
@browser = Watir::Browser.new 'firefox'
end
…工作正常,为每个功能打开一个新的浏览器并在“完成后”关闭它。
这会减慢执行速度,因为新浏览器会启动和关闭每个功能。但是,如果我从“Before do”中创建@browser 以便对所有功能使用相同的浏览器 session ,则会出现以下错误:
**Unable to pick a platform for the provided browser (RuntimeError)**
...根本不启动任何测试。 我正在使用页面对象 gem、ruby-on-rails...
你能告诉我我做错了什么吗? 非常感谢!
最佳答案
我不确定您收到的错误是从哪里来的,但我猜这是一个范围问题。如果您只在 env.rb 中声明@browser(而不是在钩子(Hook)中),那么在您的步骤中@browser 将为 nil。
Alister Scott 有一个设置只打开浏览器一次的好例子 (http://watir.com/2011/01/22/simple-cucumber-watir-page-object-pattern-framework/)。
基本上您需要以下内容(注意哪些变量是浏览器与@browser):
browser = Watir::Browser.new 'firefox'
Before do
@browser = browser
end
at_exit do
browser.close
end
关于ruby-on-rails - 对 Cucumber 上的多个功能使用相同的浏览器实例时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017708/