3

我在为 Cucumber 驱动程序创建浏览器实例时遇到问题。如果我在“Before do”内的 env.rb 上创建对象:

Before do
@browser = Watir::Browser.new 'firefox'
end

…工作正常,为每个功能打开一个新浏览器并在“完成后”关闭它。

这会减慢执行速度,因为新浏览器会启动并关闭每个功能。但是,如果我从“Before do”中创建@browser,以便为所有功能提供相同的浏览器会话,则会出现以下错误:

**Unable to pick a platform for the provided browser (RuntimeError)**

...根本不启动任何测试。我正在使用页面对象 gem,ruby-on-rails ......

你能告诉我我在做什么错吗?非常感谢!

4

1 回答 1

5

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

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
于 2012-06-13T16:23:54.767 回答