Java 检测服务器登录提示的程序?

Java program for detecting server login prompt?

我正在 Java 中编写一个程序来自动执行服务器管理控制台 URL 的 Web 测试,以找出哪些控制台向用户显示登录凭据框。

我已经开始研究使用 Selenium WebDriver 来实现打开和关闭的实际测试功能的自动化 windows,但我不知道应该如何检测登录框呈现给用户。

发生这种情况时服务器是否提供特定的响应代码?我知道当用户 unauthenticated/forbidden 时,将分别有 401 或 403 的 HTTP 响应,但我不确定无论是否向用户。

目标是找出哪些 URL 允许用户输入凭据,然后将其发布到 .txt 文件以供进一步评估。我已经让 java I/O 元素正常工作来执行此操作,所以我真正需要的是弄清楚我正在寻找什么条件。如有任何帮助,我们将不胜感激!

假定您有一个实例化的 WebDriver 实例 (driver) 以及您要检查的一组网址 (urls), 并且假设您的登录框包含一些位于 ID "username"

的元素

然后 一种可能的 Java 中的 Selenium 解决方案可能如下所示:

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