2017-02-07 72 views
0

我正在用Java編寫一個程序來自動化服務器管理控制檯URL的Web測試,以查找哪些用戶具有登錄憑證的框。用於檢測服務器登錄提示的Java程序?

我已經開始研究如何使用Selenium WebDriver來自動化打開和關閉窗口的實際測試功能,但是我無法弄清楚我應該如何去檢測登錄框是否呈現給一個用戶。

當發生這種情況時,服務器是否存在特定的響應代碼?我知道用戶未經身份驗證/禁止的情況下,將分別有401或403的HTTP響應,但我不確定此401未經身份驗證的響應代碼是否會發生,無論是否向用戶顯示登錄憑證的框。

目標是找到哪個URL允許用戶輸入憑據,然後將它們發佈到.txt文件以供進一步評估。我已經有java I/O元素可以正常工作,所以我真正需要的是找出我正在尋找的條件。任何幫助,將不勝感激!

+0

硒主要是關於網絡瀏覽器自動化,而不是HTTP代碼。使用Seleinum,您可以探測您想要檢查的每個URL的登錄框的存在。你可以使用'WebDriver.findElements'或'ExpectedConditions.presenceOfElementLocated'來完成。如果你提供了迄今爲止的代碼,那麼我可以詳細介紹一下。 –

+0

謝謝!這是訣竅。 – htillman3

+0

很高興知道。說這個最好的方法就是接受答案。你甚至因此而獲得聲譽。 –

回答

0

假設你有一個實例化的webdriver實例(driver) 和URL的要檢查, 並給予您loginbox集合(urls)包含位於由ID爲「用戶名」

然後一個可能的一些元素在Java中硒的解決辦法是這樣的:

for (String url : urls) { 
    driver.get(url); 
    //adjust to your needs: long timeOutInSeconds, long sleepInMillis 
    WebDriverWait wait = new WebDriverWait(driver, 120L, 1000L); 
    try { 
     wait.until(ExpectedConditions.presenceOfElementLocated(By.id("username"))); 
     //TODO: Element found within timeOutInSeconds 
    } catch (WebDriverException e) { 
     //TODO: Element not present after timeOutInSeconds, write url to txt file 
    } 
} 

如果無法通過ID查找元素,使用其他定位機制described here