我使用以下代码验证页面内所有损坏的链接,但我收到错误消息
&#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());
}
}
请帮帮我。
答案 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的内容