zoukankan      html  css  js  c++  java
  • java下使用chromedriver获取访问页面状态码

    ##在使用chromedriver的时候 并没有提供api来获取访问页面的状态码,但是可以打开日志来获取到

        LoggingPreferences logPrefs = new LoggingPreferences();
            logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
            DesiredCapabilities cap = DesiredCapabilities.chrome();
            cap.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);

    全部代码如下:

        ChromeOptions options = new ChromeOptions();
            LoggingPreferences logPrefs = new LoggingPreferences();
            logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
            DesiredCapabilities cap = DesiredCapabilities.chrome();
            cap.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
            options.addArguments("headless");
            //禁用沙盒nage
            options.addArguments("no-sandbox");
            options.addArguments("disable-gpu");
            cap.setCapability(ChromeOptions.CAPABILITY, options);
            ChromeDriver driver = new ChromeDriver(cap);
            driver.get("https://www.baidu.com");
            String currentURL = driver.getCurrentUrl();
            LogEntries logs = driver.manage().logs().get("performance");
            int status = -1;
            System.out.println("
    List of log entries:
    ");
            for (Iterator<LogEntry> it = logs.iterator(); it.hasNext(); ) {
                LogEntry entry = it.next();
                try {
                    JSONObject json = JSON.parseObject(entry.getMessage());
                    System.out.println(json.toString());
                    JSONObject message = json.getJSONObject("message");
                    String method = message.getString("method");
                    if (method != null&& "Network.responseReceived".equals(method)) {
                        JSONObject params = message.getJSONObject("params");
                        JSONObject response = params.getJSONObject("response");
                        String messageUrl = response.getString("url");
                        if (currentURL.equals(messageUrl)) {
                            status = response.getInteger("status");
                            System.out.println("---------- bingo !!!!!!!!!!!!!! returned response for "+ messageUrl + ": " + status);
                            System.out.println("---------- bingo !!!!!!!!!!!!!! headers: "+ response.get("headers"));
                        }
                    }
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            System.out.println("
    status code: " + status);
  • 相关阅读:
    运算符重载
    责任链模式
    MFC一些常见面试问题
    浅拷贝&深拷贝
    下雨的效果
    本地时间使用与倒计时
    钟表效果
    一种水纹波浪效果
    一个相册效果
    在Flash中管理鼠标右键
  • 原文地址:https://www.cnblogs.com/yuluoxingkong/p/10076578.html
Copyright © 2011-2022 走看看