簡體   English   中英

Watir / MiniTest-未定義的局部變量或方法“瀏覽器”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM