当前位置: 首页 > 面试题库 >

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

何向荣
2023-03-14
问题内容

我编写了用于检查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文件,则可以从那里下载。


问题答案:

根据如何在Selenium WebDriver中使用Selenium
WebDriver获取响应状态代码,
没有直接的方法来检查响应状态代码,因此我们必须使用另一个库。您可以使用Jayway的Apache HttpClient或REST保证的库。

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);
            }
        }
    }
}


 类似资料:
  • 我的主要问题是我得到一个错误,说明:在第80行: 第80行是

  • 我正在使用eclipse,我需要在我的android活动中使用带有PagerSlidingAbstrip的滑动选项卡。解决方案必须是什么?

  • 问题内容: 我的项目显示错误消息。我出于所有可能想到的原因抬起头来。我已设定和的路径。即使我的mapView可以正常工作(如果我在下面的代码中评论),这意味着已正确添加到项目中。 知道为什么会出错吗? 问题答案: 确保您已将最新的Android支持程序包添加到项目中。例如,此示例项目有一个合适的示例,并演示了的用法。

  • 问题内容: 我是android编程的新手。我正在按照本教程使用“ 支持Android 2.1及* 更高 版本 ”部分中的说明将 ActionBar 添加到Main_Activity中。 * 我按照本教程添加了一个Library-Project。然后,在添加库之后,在“ 将库添加到您的应用程序项目中 ”这一点上:我感到很迷…基本上是因为我在Eclipse中本身没有“ add ”选项。 但是我点击了“

  • 我得到了这个错误时启动检查风格分析在Spring引导应用程序: 代码: 有什么帮助吗?

  • 问题内容: 这是我第一次尝试使用ui-router。 这是我的app.js 如您所见,我有两种状态。我正在尝试这样注册状态: 但是我越来越 无法从状态“解析”“注册” 例外。这里有什么问题? 问题答案: 这种错误通常表示(JS)代码的某些部分未加载。里面的状态不见了。 有一个可行的例子 我不是离子技术方面的专家,因此此示例应表明它可以正常工作,但我使用了更多技巧(用于制表符的父级) 这是一个调整后