NoMethodError:私有方法`browser_name'调用{:browserName =>:firefox,:version => nil}:哈希

时间:2017-12-11 21:12:55

标签: ruby cucumber watir-webdriver

我正在尝试学习selenium Grid,我遵循了一个教程,但是当我尝试运行我的功能时,我遇到了这个错误:

NoMethodError:私有方法`browser_name'调用{:browserName =>:firefox,:version => nil}:Hash

这是env.rb文件:

   require 'watir-webdriver'
require 'cucumber'

def browser_path
  (ENV['BPATH'])
end

def browser_name
  (ENV['BROWSER'] ||= 'firefox').downcase.to_sym
end

def environment
  (ENV['ENV'] ||= 'grid').downcase.to_sym
end

def browser_version
  (ENV['VER'])
end

Before do
  def assert_it message, &block
    begin
      if (block.call)
        puts "Assertion PASSED for #{message}"

      else
        puts "Assertion FAILED for #{message}"
        fail('Test Failure on assertion')
      end
    rescue => e
      puts "Assertion FAILED for #{message} with exception '#{e}'"
      fail('Test Failure on assertion')
    end
  end
  if browser_path != nil
    Selenium::WebDriver::Firefox.path= "#{browser_path}"
  end
  if environment == :grid
    @browser = Watir::Browser.new(:remote, :url=>"http://10.196.60.38:4444/wd/hub", :desired_capabilities=> {browserName: browser_name,version: browser_version})
    @browser.window.maximize
  else
    @browser = Watir::Browser.new browser_name
    @browser.window.maximize
  end

end

After do
  @browser.close
end

谢谢,感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

watir-webdriver已弃用,不适用于最新版本的Firefox。请更新到watir的最新版本。

使用最新版本的watir,你应该能够做到:

Watir::Browser.new(browser_name, url: "http://10.196.60.38:4444/wd/hub", version: browser_version