gpt4 book ai didi

java - 检查链接的 URL 状态代码时无法将 HttpResponseCode 错误解析为类型

转载 作者:行者123 更新时间:2023-11-30 10:06:33 25 4
gpt4 key购买 nike

我编写了用于检查 URL 状态代码的简单程序。但是 eclipse 给我一个错误,说 HttpResponseCode 不能解析为一个类型。我该怎么办。

import static org.testng.Assert.assertEquals;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.Assert;

public class StarWarSocialMenu {

public static void main(String[] args) throws Exception {
String sDriverPath = "C:\\BrowserDriver\\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", sDriverPath);
int statusCode;
final String URL = "https://www.starwars.com/";
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().setScriptTimeout(10000, TimeUnit.SECONDS);
driver.get(URL);
driver.manage().window().maximize();
List<WebElement> socialMenu = driver.findElements(By.xpath("//div[@id='nav-external-links']//a"));

//System.out.println("Total Amenities " + socialMenu.size());
for (WebElement e : socialMenu)
{
//System.out.println(e.getAttribute("href"));
String href = e.getAttribute("href");
statusCode = new HttpResponseCode().httpResponseCodeViaGet(href);

if(200 != statusCode) {
System.out.println(href + " gave a response code of " + statusCode);
}
}
}
}

我该怎么办?如果需要下载 jar 文件,那么我可以从那里下载。

最佳答案

根据 How to get Response Status Code with Selenium WebDriver在 Selenium WebDriver 中没有直接的方法来检查响应状态代码,所以我们必须使用另一个库。您可以使用 Apache HttpClientREST-assured library from Jayway .

httpResponseCodeViaGet()

要使用方法httpResponseCodeViaGet(),您必须下载并使用以下导入:

import io.restassured.RestAssured;

然后你可以使用:

new HttpResponseCode().httpResponseCodeViaGet("http://www.google.com");

解决方案

作为替代方案,您可以使用 HttpURLConnectionopenConnection(),并且可以使用以下解决方案:

package demo;

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class BrokenLinks {

public static void main(String[] args) throws Exception {

String sDriverPath = "C:\\Utility\\BrowserDrivers\\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", sDriverPath);
String statusCode;
final String URL = "https://www.starwars.com/";
WebDriver driver = new ChromeDriver();
driver.get(URL);
driver.manage().window().maximize();
List<WebElement> socialMenu = driver.findElements(By.xpath("//div[@id='nav-external-links']//a"));
System.out.println("Total Amenities " + socialMenu.size());
for (WebElement e : socialMenu)
{
String href = e.getAttribute("href");
System.out.println(e.getAttribute("href"));
HttpURLConnection connection = (HttpURLConnection) new URL(href).openConnection();
connection.connect();
statusCode = connection.getResponseMessage();
connection.disconnect();
if(!statusCode.contains("200")) {
System.out.println(href + " gave a response code of " + statusCode);
}
}
}
}

关于java - 检查链接的 URL 状态代码时无法将 HttpResponseCode 错误解析为类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54599407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com