Я використовую Watir в середовищі RadRails IDE. Я створюю клас, який перевіряє наявність тексту на моїй веб-сторінці:
class Text
def initialize(text, object)
@text = text
@object = object
if $ie.contains_text(@text)
puts "Test for" + @object + "failed"
puts $ie.link(:text => /Exception:/)
h = $ie.link(:text => /Exception:/)
r.addtoReport(testReport, "check" + @object, "FAILED", h.text)
else
puts("Test for" + @object + "passed")
r.addtoReport(
testReport,
"check" + @object,
"PASSED",
"Test for" + @object + "passed"
)
end
end
end
Але коли я намагаюся виконати код у своєму тесті, я отримую таку помилку -
BPM/Company.rb:38:in `initialize": undefined method `contains_text" for nil:NilClass (NoMethodError)
from BPM/Company.rb:79:in `new"
from BPM/Company.rb:79:in `<main>"
Я викликаю клас за цією командою -
Text.new("Menu", "login")
Зміни в коді -
def initialize(text, object, ie)
@text = text
@object = object
@ie=ie
if @ie.contains_text(@text)
puts "Test for" + @object + "failed"
puts @ie.link(:text => /Exception:/)
Я викликаю клас за цією командою -
Text_pos.new("Terms", "login",$ie)
Перед описом класів тобто ініціалізується ie=Watir::IE.new
Відповіді:
1 для відповіді № 1Звідки походить $ ie? - схоже, ви не ініціалізували, тобто:
ie = Watir::IE.new