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。
我正在 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。