我正在用Java编写一个程序来自动化服务器管理控制台URL的Web测试,以找到哪些用户为用户提供了一个用于登录凭据的框。
我已经开始考虑使用Selenium WebDriver来自动执行打开和关闭窗口的实际测试功能,但我无法弄清楚我应该如何检测登录框是否出现在用户。
当发生这种情况时,是否有服务器提供的特定响应代码?我知道当用户未经身份验证/被禁止时,将分别有401或403的HTTP响应,但我不确定是否会发生此401未经身份验证的响应代码,无论是否向用户显示登录凭据的框
目标是找到哪个URL允许用户输入凭据,然后将这些URL发布到.txt文件以进行进一步评估。我已经让java I / O元素正常工作了,所以我真正需要的是找出我正在寻找的条件。任何帮助将不胜感激!
答案 0 :(得分:0)
鉴于您有一个实例化的WebDriver实例(driver
)
以及要检查的网址集(urls
),
并且鉴于您的登录箱包含一些按ID“用户名”
然后 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。