DealerDetail的未定义方法`heade':Class(NoMethodError)

时间:2012-12-04 12:48:19

标签: ruby rubygems cucumber watir watir-webdriver

我在运行时遇到麻烦,我一直在收到错误 .rb:45:在<main>': undefined method heade'中为DealerDetail:Class(NoMethodError) 我做错了什么我环顾四周,但无法找到任何解决方案帮助将不胜感激

require 'watir-webdriver'

@browser = Watir::Browser.new

@page = [:dealerdetail => "www.google.com",
         :findadealer => "www.google.com",
         :findadealer_results => "www.google.com"
          ]

class DealerDetail 

 attr_accessor :browser   


 def heade

    @browser.goto @page [:dealerdetail]
    @browser.element(:id, 'mainNav').exists? 
        puts 'main navigation bar appears'

    puts 'navigation bar does not appear'

 end


 def footer   
    if @browser.element(:id, 'pageFooter').exists?
    puts 'footer  appears'
    elsif 
    puts 'Footer does not appear'
    end
  end

end


@deal = DealerDetail .new

@deal.heade

1 个答案:

答案 0 :(得分:0)

尝试访问heade

@page方法在实例中不可用,导致您在范围之外定义它。

我想你想在class中定义@page实例变量:

require 'watir-webdriver'

class DealerDetail 

  attr_accessor :browser

  def initialize
    @browser = Watir::Browser.new

    @page = [:dealerdetail => "www.google.com",
      :findadealer => "www.google.com",
      :findadealer_results => "www.google.com"
    ]
  end

  def heade

    @browser.goto @page[:dealerdetail]
    @browser.element(:id, 'mainNav').exists? 
    puts 'main navigation bar appears'

    puts 'navigation bar does not appear'

  end

end

@deal = DealerDetail.new

@deal.heade

还要确保类/对象和被调用方法之间没有空格。

DealerDetail .new应为DealerDetail.new

@page [:dealerdetail]应为@page[:dealerdetail]