在 Selenium.WebDriver.ChromeDriver
的 74.0.3729.6
版本中,我可以毫无问题地运行以下代码:
foreach (var logItem in driverInstance.Manage().Logs.GetLog(LogType.Browser).ToList())
{
NLogLogger.Debug(logItem.Message);
}
但是从版本 75.0.3770.90
System.NullReferenceException:“对象引用未设置为对象的实例。”
在最新的发行说明中,我发现了一些关于日志更改的提及,但没有明确指出发生了什么更改或可能导致此问题:
- Resolved issue 2947: No W3C compliant endpoints for retrieving logs [Pri-2]
- Resolved issue 2803: Capability name loggingPrefs is not spec compliant [Pri-2]
https://chromedriver.storage.googleapis.com/75.0.3770.90/notes.txt
理想情况下,我不想删除此代码,因为我必须能够从浏览器端获取日志,但我也不希望被锁定到 Selenium Chrome 驱动程序的 74 版,因为随着时间的推移,这显然会变得一个越来越大的问题,所以我想知道是否有人可以建议一种不同的方式来动态访问这些日志?
最佳答案
driver.Manage().Logs.GetLog(LogType.Browser) no longer working in Chromedriver version 75.0.3770
我遇到了同样的问题,不幸的是它不能在当前版本的 Selenium 的 w3c 模式下工作。
关于c# - Selenium Chrome 驱动程序(75 及以上)使用 GetLog() 方法访问日志时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56946240/