在Cucumber上为多个功能使用相同的浏览器实例时出错

Eze*_*tha 3 ruby-on-rails cucumber watir-webdriver pageobjects page-object-gem

我在为Cucumber驱动程序创建浏览器实例时遇到问题.如果我在"之前做"的env.rb中创建对象:

Before do
@browser = Watir::Browser.new 'firefox'
end
Run Code Online (Sandbox Code Playgroud)

...工作正常,为每个功能打开一个新的浏览器,并在"After do"上关闭它.

这会降低执行速度,因为新浏览器会启动并关闭每个功能.但是如果我在"之前做"中创建@browser以便为所有功能使用相同的浏览器会话,则会出现以下错误:

**Unable to pick a platform for the provided browser (RuntimeError)**
Run Code Online (Sandbox Code Playgroud)

......根本没有进行任何测试.我正在使用页面对象gem,ruby-on-rails ......

你能告诉我,我做错了什么?非常感谢!

Jus*_* Ko 5

我不确定你得到的错误来自哪里,但我猜它是一个范围问题.如果你在env.rb中声明@browser(不在钩子中),那么@browser将在你的步骤中为零.

Alister Scott有一个很好的例子,设置只打开浏览器一次(http://watir.com/2011/01/22/simple-cucumber-watir-page-object-pattern-framework/).

基本上你需要以下内容(注意哪些变量是浏览器vs @browser):

browser = Watir::Browser.new 'firefox'

Before do
  @browser = browser
end

at_exit do
  browser.close
end
Run Code Online (Sandbox Code Playgroud)