我在运行时遇到麻烦,我一直在收到错误
.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
答案 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]