是否可以使用 selenium 从 google chrome 开发人员工具的网络面板中提取任何 Header 值?

Is it possible to extract any Header value from the Network panel on google chrome developer tools with selenium?

我想使用 selenium 在 google chrome 开发人员工具的网络面板下访问 Headers 之一的值。

我可以使用 Selenium 中的 ChromeOptions 导航和访问 json for Networks 面板。但我还需要为任何名称提取任何 Headers 的值。对于前。我手动导航到 www.google.com,按 F12,单击左侧栏中的任何名称,对于该特定名称,在右侧,我需要访问 Headers 部分下的 "Request URL" .

使用下面的代码,我可以访问网络面板:

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/root/Downloads/aaa"); 
options.addArguments("start-maximized");
WebDriver driver = new ChromeDriver(options);[enter image description here][1]
driver.get("http://www.google.com");
String scriptToExecute = "var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {}; var network = performance.getEntries() || {}; return network;";
String netData = ((JavascriptExecutor)driver).executeScript(scriptToExecute).toString();

是否可以通过 Selenium 或任何 Java 程序?

您需要使用 LogType.performance 来获取它。它将包含很多信息,您可以相应地进行过滤。

public class travelComps {
    static ChromeDriver driver;

    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver",
                "Chromedriver76PAth");

        ChromeOptions cop = new ChromeOptions();

        LoggingPreferences loggingprefs = new LoggingPreferences();
        loggingprefs.enable(LogType.BROWSER, Level.ALL);
        loggingprefs.enable(LogType.CLIENT, Level.ALL);
        loggingprefs.enable(LogType.PERFORMANCE, Level.ALL);
        loggingprefs.enable(LogType.PROFILER, Level.ALL);

        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setCapability(CapabilityType.LOGGING_PREFS, loggingprefs);
        cop.setCapability("goog:loggingPrefs", loggingprefs);

        cop.merge(capabilities);
        driver = new ChromeDriver(cop);
        driver.get("http://automationpractice.com/index.php");

        logBrowserConsoleLogs();

        driver.quit();

    }

    private static void logBrowserConsoleLogs() {

        all(LogType.PERFORMANCE);

    }

    public static void all(String logTypes) {
        System.out.println("================== " + logTypes + "  LOGS =======================");

        List<LogEntry> logEntries = driver.manage().logs().get(logTypes).getAll();
        for (LogEntry entry : logEntries) {
            System.out.println(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage());
        }
        System.out.println("=======================================================");
    }