微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从WebDriver获取正确的控制台日志(Chrome,C#)

我在Selenium WebDriver,C#中为Chrome浏览器编写了以下微测试(它没用,但在这里不是这样):

[Test]
    public void T2_API_001_Printingalerts()
    {
        pgactions.OpenDataset(driver, settings.dataset); // opening page

        for (int i = 0; i < 10; i++)
        {
            ((IJavaScriptExecutor)driver).ExecuteScript("TsTable.Admin.log('this is error message', true);");
        }

        var logs = driver.Manage().Logs.GetLog(LogType.browser);

        foreach (var log in logs)
        {
            Console.WriteLine(log.ToString());
        }

        Thread.Sleep(100000);
    }

在VS中调试控制台我希望看到(就像我在Web浏览器实例中看到的WebDriver):

[14:02:22.816] Settings valid!
randomTable.js:6711 [14:02:22.976] Constructing table...
randomTable.js:6711 [14:02:22.976] Validating 32 rows data set...
( some more irrelevant rows )
randomTable.js:6711 [14:02:23.375] ...DONE (0.399 sec)
randomTable.js:6711 [14:02:24.949] this is error message
randomTable.js:6711 [14:02:25.060] this is error message
randomTable.js:6711 [14:02:25.174] this is error message
randomTable.js:6711 [14:02:25.344] this is error message
randomTable.js:6711 [14:02:25.477] this is error message
randomTable.js:6711 [14:02:25.612] this is error message
randomTable.js:6711 [14:02:25.715] this is error message
randomTable.js:6711 [14:02:25.809] this is error message
randomTable.js:6711 [14:02:25.993] this is error message
randomTable.js:6711 [14:02:26.089] this is error message

但我得到的是:

------ Run test started ------
NUnit VS Adapter 2.0.0.0 executing tests is started
Loading tests from C:\automated_testing\testTable\TableSelenium.dll
Run started: C:\automated_testing\testTable\TableSelenium.dll
Starting test...
[2016-05-04T12:02:16Z] [All] http://tstable.testsite.com/favicon.ico 0:0 Failed to load resource: the server responded with a status of 404 (Not Found)

(最后一行只是重要的,但说实话 – 我甚至不能在浏览器中查看该行(?))

问题出在这一行吗?
var logs = driver.Manage().Logs.GetLog(LogType.browser); ?

我知道这一点:
https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/6832

但也看到一些’黑客’以不同的方式收集错误日志.它的主要情况 – 我不需要错误,但所有日志.

有任何想法吗?

解决方法:

问题出在驱动程序声明部分,其中缺少LogLevel.现在我在[SetUp]部分设置SetLoggingPreference:

ChromeOptions options = new ChromeOptions();
options.SetLoggingPreference(LogType.browser, LogLevel.All);
driver = new ChromeDriver("path to driver", options);

并且所有日志都在调试控制台中打印:-)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐