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

时间:2017-02-07 16:19:14

标签: java selenium-webdriver browser-automation

我正在用Java编写一个程序来自动化服务器管理控制台URL的Web测试,以找到哪些用户为用户提供了一个用于登录凭据的框。

我已经开始考虑使用Selenium WebDriver来自动执行打开和关闭窗口的实际测试功能,但我无法弄清楚我应该如何检测登录框是否出现在用户。

当发生这种情况时,是否有服务器提供的特定响应代码?我知道当用户未经身份验证/被禁止时,将分别有401或403的HTTP响应,但我不确定是否会发生此401未经身份验证的响应代码,无论是否向用户显示登录凭据的框

目标是找到哪个URL允许用户输入凭据,然后将这些URL发布到.txt文件以进行进一步评估。我已经让java I / O元素正常工作了,所以我真正需要的是找出我正在寻找的条件。任何帮助将不胜感激!

1 个答案:

答案 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