【问题标题】:Error when using the same browser instance for several features on Cucumber对 Cucumber 上的多个功能使用相同的浏览器实例时出错
【发布时间】:2012-06-13 14:58:49
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails cucumber watir-webdriver pageobjects page-object-gem


    【解决方案1】:

    我不确定你得到的错误来自哪里,但我猜这是一个范围问题。如果您仅在 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
    

    【讨论】:

    • 行得通,贾斯汀;太感谢了!你是对的,这是一个范围问题。很好的解释,再次感谢 Alister 帖子的链接。
    • browser = browser... 是有原因的还是打错了?
    • @ŽeljkoFilipin,我会打错字。固定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多