我正在使用Selenium 3.4和FirefoxDriver(而不是Marionette / Geckodriver)运行Java / Maven项目的测试。我安装了Firefox 45.9.0。我们的测试代码使用Log4j2,我可以将日志记录级别设置为我喜欢的任何内容,但无论我将其设置为什么,我都会在控制台中收到这样的日志消息:
1501873908911 addons.manager DEBUG Application has been upgraded
1501873909216 addons.manager DEBUG Loaded provider scope for resource://gre/modules/addons/XPIProvider.jsm: ["XPIProvider"]
1501873909218 addons.manager DEBUG Loaded provider scope for resource://gre/modules/LightweightThemeManager.jsm: ["LightweightThemeManager"]
1501873909220 addons.manager DEBUG Loaded provider scope for resource://gre/modules/addons/GMPProvider.jsm
1501873909221 addons.manager DEBUG Loaded provider scope for resource://gre/modules/addons/PluginProvider.jsm
1501873909221 addons.manager DEBUG Starting provider: XPIProvider
1501873909221 addons.xpi DEBUG startup
1501873909222 addons.xpi INFO Mapping fxdriver@googlecode.com to C:\TMP\anonymous3169069284131523935webdriver-profile\extensions\fxdriver@googlecode.com
1501873909222 addons.xpi DEBUG Ignoring file entry whose name is not a valid add-on ID: C:\TMP\anonymous3169069284131523935webdriver-profile\extensions\webdriver-staging
1501873909223 addons.xpi INFO SystemAddonInstallLocation directory is missing
1501873909224 addons.xpi INFO Mapping loop@mozilla.org to C:\Program Files (x86)\Mozilla Firefox\browser\features\loop@mozilla.org.xpi
1501873909226 addons.xpi INFO Mapping {972ce4c6-7e08-4474-a285-3208198ce6fd} to C:\Program Files (x86)\Mozilla Firefox\browser\extensions\{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
1501873909226 addons.xpi DEBUG Skipping unavailable install location app-system-share
1501873909226 addons.xpi DEBUG Skipping unavailable install location app-system-local
无论我将日志记录级别设置为什么,FirefoxDriver内部或Firefox本身内部的内容都会以DEBUG级别登录。
我查看了this question,但我无法弄清楚如何将Python答案翻译成我们的Java代码:
示例Python:
import logging
from selenium.webdriver.remote.remote_connection import LOGGER
LOGGER.setLevel(logging.WARNING)
我们的Java代码:
DesiredCapabilities capability = DesiredCapabilities.firefox();
FirefoxProfile profile=new FirefoxProfile();
capability.setCapability(FirefoxDriver.PROFILE, profile);
mDriver = new FirefoxDriver(capability);
我尝试了几种排列,但似乎没有任何影响这种日志记录 - 这些消息无论如何都出现在控制台中。有人有办法控制这个日志记录吗?
答案 0 :(得分:2)
这些日志来自selenium库,如果你不想看到它=>通过仅在包中声明记录范围或将其关闭来关闭它。
例如,您只想从代码中获取日志消息,代码的根软件包是:com.example.mycode
然后打开log4j配置文件并添加:log4j.logger.com.example.mycode = DEBUG|INFO
。
或者您只能关闭来自硒的记录:java.util.logging.Logger.getLogger("org.openqa.selenium").setLevel(Level.OFF);
答案 1 :(得分:1)
对不起,我想挖一个旧线程,但只想提供一个更新的解决方案(撰写本文时,最新驱动程序版本为0.23.0)。
官方文档:https://firefox-source-docs.mozilla.org/testing/geckodriver/geckodriver/TraceLogs.html
这是上面的文档中的Java示例。
您可以通过将日志记录级别包含在.setLogLevel
类的FirefoxOptions
方法中来指定日志记录级别。
FirefoxOptions options = new FirefoxOptions();
options.setLogLevel(FirefoxDriverLogLevel.TRACE);
WebDriver driver = new FirefoxDriver(options);
您可以参考文档来了解不同级别的日志记录。