如何通过WebDriver获取console.info日志?

时间:2019-11-26 11:58:43

标签: java google-chrome webdriver selenium-chromedriver

我尝试通过WebDriver获取控制台信息日志,但不能,但是我看到“警告”日志。这是我启动chromedriver的简化设置:

var

我将页面设置为执行下一个代码:

ChromeOptions options = new ChromeOptions();
LoggingPreferences loggingPrefs = new LoggingPreferences();
loggingPrefs.enable( LogType.BROWSER, Level.ALL );
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability( CapabilityType.LOGGING_PREFS, loggingPrefs );
options.merge( capabilities );
ChromeDriverService.Builder builder = new ChromeDriverService.Builder()
        .usingDriverExecutable( new File( "my path to chromedriver" ) )
        .usingAnyFreePort()
        .withEnvironment( ImmutableMap.of( "DISPLAY", ":0" ) );

ChromeDriverService service = builder.build();
webDriver = new ChromeDriver( service, options );
webDriver.get( "my site for testing" );

我试图在断点处停止测试,或添加一些waits / thread.sleep(),因此确保执行了它。 现在,当我执行console.warn("warn") console.info("info") 时,我只有一个日志条目,即“警告”日志:

  

[2019-11-26T13:51:55 + 0200] [警告] console-api 0:8“警告”

所以我的问题是我应该怎么做才能获取“信息”日志?

一些其他信息:

  • Chrome版本77.0.3865.90
  • Chromedriver版本77.0.3865.40
  • 硒3.14.0

2 个答案:

答案 0 :(得分:0)

简而言之,您可以使用webDriver将类型转换添加到初始化为RemoteWebDriver的{​​{1}}中,

.setLogLevel

正在导入:

webDriver = new ChromeDriver();
((RemoteWebDriver) webDriver).setLogLevel(Level.INFO);

答案 1 :(得分:-1)

这是一个类似的问题,答案为:Selenium Web Driver: Extracted Chrome Browser logs are incomplete

CapabilityType.LOGGING_PREFS更改为goog:loggingPrefs之后,我终于得到了所有日志。

ChromeDriver 75.0.3770.8 https://chromedriver.chromium.org/downloads

的重点介绍了新功能密钥。