2013-05-09 64 views
0

我正在測試的網站要求用戶登錄,並且這是由web服務器而不是HTML表單處理的,因此它會在瀏覽器中生成身份驗證彈出窗口。啓動瀏覽器時如何處理在Rspec中彈出的身份驗證

我試着做以下

before(:each) do  
    $browser = Watir::Browser.new :firefox  
    $browser.driver.manage.window.maximize   
    $browser.goto('http://qa.outbidhq.com') 
    popup = RAutomation::Window.new(:title => /Authentication/i)  
    popup.send_keys('XXXXXX') # USER ID 
    popup.send_keys :tab 
    popup.send_keys('YYYYYYYYY') # PASSWORD 
    popup.send_keys :tab 
    popup.send_keys :enter    
    sleep(15) 
end 

但代碼是不工作........ 雖然啓動瀏覽器,我需要處理窗口的用戶名和密碼,彈出.....任何建議??????我是Rspec的新手...使用Ruby

+0

'不工作'是什麼意思?描述會發生什麼,如果有任何錯誤文字等等。 – 2013-05-09 15:49:41

回答

1

RAutomation是一個使用與watir非常相似的API來提供UI自動化的庫。它明白的東西,如文本框,按鈕等等。你可以看看rdoc,或其他東西,我覺得幫助時,學習新的代碼庫是看tests

既然你與交互的UI位的概念很簡單,你可以通過索引來引用東西。

我會推薦嘗試一下使用IRB,它是嘗試事情並查看會發生什麼的最佳方法您可以更輕鬆地檢查窗口並一次試驗一行代碼以查看發生了什麼。賠率是你最終將像這樣的東西(未經測試,我猜了取消按鈕的索引0和登錄按鈕是指數1)

popup = RAutomation::Window.new(:title => /Authentication/i)   
popup.text_field(:index => 0).set('XXXXXX') # USER ID 
popup.text_field(:index => 1).set('YYYYYYYYY') # PASSWORD 
popup.button(:index => 1).click 
1

你可以就在爲HTTP Basic Authentication指定的用戶名和密碼網址:

$browser.goto('http://username:[email protected]') 

在這種情況下,身份驗證對話框不應出現,你應該馬上驗證。對此功能的支持取決於瀏覽器本身,因此您可以在嘗試使用Watir之前通過轉到具有正確用戶名和密碼的網址手動嘗試。

相關問題