Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Selenium获取Chrome浏览器控制台日志[信息]条目_Java_Selenium - Fatal编程技术网

Java 如何使用Selenium获取Chrome浏览器控制台日志[信息]条目

Java 如何使用Selenium获取Chrome浏览器控制台日志[信息]条目,java,selenium,Java,Selenium,我在使用Selenium获取chrome浏览器控制台日志[INFO]条目时遇到问题,我获取的唯一级别类型的条目是错误(警告,严重) 是否有任何方法可以获取与错误条目不同的内容,因为我需要获取[INFO]条目并根据其内容进行断言,我最近读到Selenium只能返回错误条目,这是否准确 非常感谢您提供的任何信息, 感谢您的关注和时间 来自文档(): 默认情况下,ChromeDriver只将警告/错误记录到stderr。在调试问题时,启用更详细的日志记录会很有帮助 也可参考文件: System.set

我在使用Selenium获取chrome浏览器控制台日志[INFO]条目时遇到问题,我获取的唯一级别类型的条目是错误(警告,严重)

是否有任何方法可以获取与错误条目不同的内容,因为我需要获取[INFO]条目并根据其内容进行断言,我最近读到Selenium只能返回错误条目,这是否准确

非常感谢您提供的任何信息, 感谢您的关注和时间

来自文档():

默认情况下,ChromeDriver只将警告/错误记录到stderr。在调试问题时,启用更详细的日志记录会很有帮助

也可参考文件:

System.setProperty("webdriver.chrome.logfile", "D:\\chromedriver.log");
System.setProperty("webdriver.chrome.verboseLogging", "true");
希望能奏效

备选方案

如果上述操作不起作用,您可以尝试以下操作,这次使用
ChromeOptions
对象:

ChromeOptions options = new ChromeOptions();
options.setArguments("--log-level=1");
或来自()

要启用日志记录,请使用以下命令行标志启动Chrome: --启用日志记录--v=1

也就是说:

options.setArguments("--enable-logging --v=1");

感谢您的回答,但不幸的是,这些都不适用于我,我已设法通过以下方式为我的问题找到了解决方案:

    ChromeOptions options = new ChromeOptions();
    options.setCapability(ChromeOptions.CAPABILITY, getCap());
    WebDriver driver = new ChromeDriver(options);
除了定制方法外:

private static DesiredCapabilities getCap() {
    DesiredCapabilities caps = DesiredCapabilities.chrome();
    LoggingPreferences logPrefs = new LoggingPreferences();
    logPrefs.enable(LogType.PERFORMANCE, Level.INFO);
    logPrefs.enable(LogType.PROFILER, Level.INFO);
    logPrefs.enable(LogType.BROWSER, Level.INFO);
    logPrefs.enable(LogType.CLIENT, Level.INFO);
    logPrefs.enable(LogType.DRIVER, Level.INFO);
    logPrefs.enable(LogType.SERVER, Level.INFO);
    caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
    return caps;
}
最后不得不制作一个过滤方法,因为Selenium one对我来说工作不正常,并且返回了所有条目:

private static List<LogEntry> filterLog(LogEntries entries) {
    List<LogEntry> logs = new ArrayList<>();
    for (LogEntry entry : entries) {
        if(entry.getLevel().toString().equals(INFO)) {
            logs.add(entry);
        }
    }
    return logs;
}
私有静态列表过滤器日志(日志条目){
列表日志=新的ArrayList();
用于(日志条目:条目){
if(entry.getLevel().toString().equals(INFO)){
日志。添加(条目);
}
}
返回日志;
}