[英]Watir with Ruby: undefined local variable or method `doc' for main:Object
[英]Watir / MiniTest - Undefined local variable or method 'browser'
在過去的一周中,我已經創建了66個watir腳本,以在客戶端網站上進行自動化測試。
但是,最近我發現了一個我正在嘗試實現的名為MiniTest的測試框架。
我將URL設置為變量的原因是,這些測試需要在5個不同的網站上運行,因此當他們希望我在其他網站上運行我的數據包時,我只需要更新該1個變量即可,而不必更新每個變量測試。
require 'minitest/autorun'
require "watir-webdriver"
class MPTEST < MiniTest::Unit::TestCase
def setup()
url = "http://thewebsite.com/"
$browser = Watir::Browser.new :chrome
$browser.goto url
end
def test_myTestCase
$browser.link(:text, "Submit your CV").click
sleep(2)
$browser.button(:value,"Submit").click
assert($browser.label.text.includes?("This field is required"))
def teardown
$browser.close
end
end
運行時,我收到以下輸出:
NameError: undefined local variable or method 'browser' for #<MPTEST:0x4cc72f8>c:/directory stuff...
有任何想法嗎?
編輯我有瀏覽器工作,但是現在我的斷言有一個問題:
新代碼:
require 'minitest/autorun'
require "watir-webdriver"
class MPTEST < MiniTest::Unit::TestCase
def setup()
url ="http://thewebsite.com"
$browser = Watir::Browser.new :chrome
$browser.goto url
end
def test_myTestCase
$browser.link(:text, "Submit your CV").click
sleep(2)
$browser.button(:value,"Submit").click
assert($browser.label.text.includes?("This field is required"))
end
def teardown
$browser.close
end
end
錯誤是:
NoMEthodError: undefined method 'includes?' for "":String
在我看來,您可以使用@browser
代替$browser
(但問題可能不在此代碼中)
例外
NoMEthodError: undefined method 'includes?' for "":String
是由於字符串,在這種情況下$browser.label.text
返回的值沒有includes?
方法。
您實際想要的方法include?
(無復數):
assert($browser.label.text.include?("This field is required"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.