Selenium C#日志记录首选项未完全实现?

时间:2018-06-19 13:19:52

标签: c# .net selenium-chromedriver

我正在使用Selenium.WebDriver.Chrome 2.40.0

根据文档,允许以下内容

var co = new ChromeOptions();
co.SetLoggingPreference(LogType.Browser, LogLevel.All);
co.SetLoggingPreference(LogType.Client, LogLevel.All);
co.SetLoggingPreference(LogType.Driver, LogLevel.All);
co.SetLoggingPreference(LogType.Profiler, LogLevel.All);
co.SetLoggingPreference(LogType.Server, LogLevel.All);

但是,当我实际尝试访问ClientServerProfiler日志时,(在stderr上)我得到了

Starting ChromeDriver 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb) on port 56426
Only local connections are allowed.
[1529414019.263][WARNING]: Ignoring unrecognized log type: client
[1529414019.266][WARNING]: Ignoring unrecognized log type: profiler
[1529414019.266][WARNING]: Ignoring unrecognized log type: server

访问这三个日志对象将很有帮助。我该如何访问它们?

其他详细信息

根据有关LogType的文档,存在5个可能的值:BrowserClientDriverProfilerServer。塔伦·拉尔瓦尼(Tarun Lalwani)建议(参见评论)也有一个Performance,但我看不到任何迹象。

我不明白为什么文档说有五个,但是在操作上只有BrowserDriver

2 个答案:

答案 0 :(得分:1)

如果您查看ChromeDriver源代码

https://chromium.googlesource.com/experimental/chromium/src/+/5c38bafbf04d6196493d4bec1a851b45a1c07d12/chrome/test/chromedriver/logging.cc#124

}  // namespace
const char WebDriverLog::kBrowserType[] = "browser";
const char WebDriverLog::kDriverType[] = "driver";
const char WebDriverLog::kPerformanceType[] = "performance";
bool WebDriverLog::NameToLevel(const std::string& name, Log::Level* out_level) {
  for (size_t i = 0; i < arraysize(kNameToLevel); ++i) {
    if (name == kNameToLevel[i].name) {
      *out_level = kNameToLevel[i].level;
      return true;
    }
  }
  return false;
}

它仅支持browserdriverperformance。对于其他警告,这是正确的

答案 1 :(得分:0)

因此canonical answer是(鼓声)...

  

仅列出了可能的日志类型。例如,服务器   仅当您使用实现此功能的服务器时才可用   日志(例如selenium服务器)。您可以查看哪些日志类型是   使用GetAvailableLogTypes方法从您的终结点计算机获取