在网站上浏览时,是否有办法触发所有控制台日志和事件?

时间:2019-09-11 04:28:47

标签: java selenium selenium-webdriver

在浏览网站时,是否有办法触发所有控制台日志和事件?

我尝试使用Capturing browser logs with Selenium WebDriver using Java上的答案,但是当我使用它时,analogLog()不会返回任何内容

 System.setProperty("webdriver.chrome.driver", "C:\\Automation//chromedriver.exe");
 ChromeOptions options = new ChromeOptions();
 options.setCapability(ChromeOptions.CAPABILITY, options);
 LoggingPreferences logPrefs = new LoggingPreferences();
 logPrefs.enable(LogType.BROWSER, Level.ALL);
 options.setCapability("goog:loggingPref", logPrefs);
 options.addArguments("incognito");

 driver = new ChromeDriver(options);
 driver.manage().window().maximize();
 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}



public void log() {
 LogEntries logEntries = driver.manage().logs().get(LogType.CLIENT);
 for (LogEntry entry: logEntries) {
  System.out.println(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage());
 }
 System.out.println("=======================================================");
}

2 个答案:

答案 0 :(得分:0)

您可以使用.setLogLevel,但此方法仅适用于RemoteWebDriver初始化,并且看起来像driver初始化的WebDriver

将演员表添加到您的driver

driver = new ChromeDriver(options);
((RemoteWebDriver) driver).setLogLevel(Level.INFO);
driver.manage().window().maximize();

正在导入:

import java.util.logging.Level;
import org.openqa.selenium.remote.RemoteWebDriver;

答案 1 :(得分:0)

问题出在您的代码上

步骤1: 启用PERFORMANCEBROWSER日志类型

LoggingPreferences logPrefs = new LoggingPreferences();
//To get network log
logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
//To get console log
logPrefs.enable(LogType.BROWSER, Level.ALL);

第2步:

您使用的设置不正确。

错误: options.setCapability("goog:loggingPref", logPrefs);

更正options.setCapability( "goog:loggingPrefs", logPrefs );

第3步:

根据要求更正代码:

//TO get network logs
 LogEntries logEntries = driver.manage().logs().get(LogType.PERFORMANCE);
//TO get console logs
 LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER);