java - 测试期间 GWT 中的控制台日志不会出现在 Chrome 驱动程序中

标签 java google-chrome gwt

在 GWT 中,我使用以下方法在 Web 浏览器控制台中显示调试消息:

Log.debug("@@@ Debug");

我正在使用 Chrome 驱动程序运行一些测试,并使用以下方法打印控制台的内容:

public static void displayConsoleContent() {
    LogEntries logs = getWebDriver().manage().logs().get(LogType.BROWSER);

    System.out.println("Console content:\n--------------------------------------------------");
    for (LogEntry log: logs.getAll()) {
        System.out.println("* " + log.toString());
    }
    System.out.println("--------------------------------------------------");
}

当我手动转到应该显示调试消息的网页时,它会正确显示在控制台中。

但是,当我在测试期间打印控制台的内容时,该消息不会出现(不过,我从其他来源收到了其他消息)。

这就是我设置网络驱动程序的方式:

private static void setUpChrome() {
        System.setProperty("webdriver.chrome.driver", "/home/user/chromedriver");

        Configuration.browser = "chrome";
        ChromeOptions options = new ChromeOptions();
        options.setBinary("/usr/bin/google-chrome");

        LoggingPreferences loggingPreferences = new LoggingPreferences();
        loggingPreferences.enable(LogType.BROWSER, Level.ALL);
        options.setCapability(CapabilityType.LOGGING_PREFS, loggingPreferences);

        options.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, true);
        ChromeDriver webDriver = new ChromeDriver(options);
        WebDriverRunner.setWebDriver(webDriver);
    }

为什么使用 Chrome 驱动程序时控制台中没有出现调试消息?

最佳答案

在开发过程中我使用GWT.log,它非常方便并且在运行时得到优化。对我来说很有魅力。

static void     log(java.lang.String message)
static void     log(java.lang.String message, java.lang.Throwable e)

Logs a message to the development shell logger in Development Mode, or to the console in Super Dev Mode.

文档:http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/client/GWT.html#log-java.lang.String-

另一方面,如果您运行编译后的代码,GWT.log 将被优化。

一个快速而肮脏的替代方案是使用丑陋的 JSNI 直接登录控制台(如果它有效的话,您可以在将来将其变得更漂亮)。

public static final native void log(Object o) /*-{
     console.log(o);
}-*/;

应该可以了

关于java - 测试期间 GWT 中的控制台日志不会出现在 Chrome 驱动程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48191937/

相关文章:

java - 如何使用java以编程方式检索网页上的文件

java - 你能在 Java 中获得基本的 GC 统计信息吗?

javascript - 自定义 chrome 扩展中的 Hook 窗口属性

google-chrome - Protractor/Selenium 嵌入式凭据放弃了对 chrome 的支持

java - IE8 不在元素中注册模糊事件 - 在 dataGrid 中使用 ConsumerEvents

java - 从套接字 channel 读取字符串

java - 如何在 java 中从 jar 加载嵌入字体作为 InputStream?

css - 为什么填充和显示 CSS 属性适用于 Chrome 中的 tr 元素?

gwt - api doc是如何生成的@http ://api. highcharts.com/

gwt - 传递到 GWT 中的 AbstractActivity.start 的 EventBus 打算用于什么?