2017-01-20 62 views
1

使用watir,我已經編寫了腳本來檢查多個鏈接正在被導向到如下所示的正確頁面。Browser.back無法正常工作

Links= ["Link", "Link1"] 

Links.each do |LinkValue|   
    @browser.link(:text => LinkValue).wait_until_present.click 
    fail unless @browser.text.include?(LinkValue) 
    @browser.back 
end 

我試圖爲:

maintaining Linktext in an array 
iterating with each linktext 
verify 
navigate to the previous page to start verifying with next linktext. 

但腳本不能正常工作。它沒有在第一個值之後執行,也沒有返回。

回答

0

下列憑證爲我工作

require 'watir' 
browser = Watir::Browser.new(:firefox) # :chrome also work 
browser.goto 'https://www.google.com/' 
browser.link(text: 'Gmail').wait_until_present.click 
sleep(10) 
browser.back 
sleep(10) 
+0

爲什麼在'back'之前和之後睡覺? – Gopal

+0

我用sleep來檢查'watir'是否正確瀏覽頁面。你不需要它。 –

0

要調用Kernel::Fail,如果條件不滿足,這將引發異常。

在這種情況下,您期待目標網頁將包含與原始網頁上點擊的鏈接文字相同的鏈接文字。如果不是這樣,那麼該腳本將引發異常並終止。

這裏是一個人爲的「工作」的例子(其中僅「作品」,因爲在這兩個始發和目標網頁存在鏈接文本):

require 'watir' 

b = Watir::Browser.new :chrome 
b.goto "http://www.iana.org/domains/reserved" 

links = ["Overview", "Root Zone Management"] 

links.each do |link| 
    b.link(:text => link).click 
    fail unless b.text.include? link 
    b.back 
end 

b.close 

一些觀察:

  • 我不會在這裏使用fail。您應該調查一個測試框架,如Minitestrspec,它們具有驗證應用程序行爲的斷言方法。
  • 在紅寶石中,變量(和方法和符號)應該在snake_case