0

<main>': undefined method heade'これを実行すると問題が発生します。DealerDetail :Class (NoMethodError) のエラー .rb:45:in が発生し続けます

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
4

1 に答える 1

0

headeメソッドが にアクセスしようとして@pageいますが、インスタンス内で使用できないため、スコープ外で定義しました。

@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]

于 2012-12-04T13:03:16.340 に答える