ruby-on-rails - 对 Cucumber 上的多个功能使用相同的浏览器实例时出错

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

我在为 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/

相关文章:

ruby-on-rails - 隐藏复选框和分配值 - Ruby on Rails - 简单问题

mysql - 将json字段与数据库表字段映射

ruby - 从 Cucumber/Capybara 测试中执行 JavaScript

java - 无法让 aws 设备场识别我的功能文件

ruby - 页面对象 gem 。为没有 id 的元素创建访问器

ruby - 如何删除ie web 驱动程序的日志?

javascript - Ruby on Rails Ajax 复选框

ruby-on-rails - 更新操作期间如何在Rails中显示验证错误?

spring-boot - 带 Spring 启动的 QAF cucumber testNG

ruby - 使用 watir-webdriver 选择本地文件