获取"连接被拒绝"使用Selenium WebDriver验证页面内所有链接时的错误消息

时间:2017-10-23 09:54:58

标签: selenium

我使用以下代码验证页面内所有损坏的链接,但我收到错误消息

&#34; 连接到www.pilotflyingj.com:443 [www.pilotflyingj.com/74.114.188.63]失败:连接被拒绝:连接引起:java.net.ConnectException:连接被拒绝:连接< / EM>&#34;

PFB我使用过的代码:

WebElement table = driver.findElement(By.xpath("//*[@id='featured-slider']/ul[1]"));
List<WebElement> links = table.findElements(By.tagName("a"));
System.out.println(links.size());

for(int i=0; i<links.size(); i++) {
    WebElement element = links.get(i);
    String url=element.getAttribute("href");
    System.out.println(url);
    verifyLink(url);            
}

public static void verifyLink(String urlLink) throws IOException {


    HttpClient client = HttpClientBuilder.create().build();
    HttpGet request = new HttpGet(urlLink);
    HttpResponse response = client.execute(request);

    if (response.getStatusLine().getStatusCode() == 200) {
        System.out.println(urlLink+" - "+response.getStatusLine());
        }

}

请帮帮我。

2 个答案:

答案 0 :(得分:0)

您是否尝试从需要登录的应用程序获取状态? 如果在selenium中你登录到系统,那么HttpClient就会出现问题。

答案 1 :(得分:0)

在我的项目中,我正在检查响应标题。 有一个采样器代码:

protected static string GetResponseHeader(string url)
        {
            object response = ((IJavaScriptExecutor)Driver.WebDriver).ExecuteAsyncScript(
                "var url = arguments[0];" +
                "var callback = arguments[arguments.length - 1];" +
                "var xhr = new XMLHttpRequest();" +
                "xhr.open('GET', url, true);" +
                "xhr.onreadystatechange = function() {" +
                "  if (xhr.readyState == 4) {" +
                "    callback(xhr.getAllResponseHeaders());" +
                "  }" +
                "};" +
                "xhr.send();", url);

            string json = new JavaScriptSerializer().Serialize(response);
            return json;
        }

您也可以在https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

中阅读有关XMLHttpRequest的内容