繁体   English   中英

Selenium 4 C# Chrome DevTools

[英]Selenium 4 C# Chrome DevTools

我想拦截来自网络Fetch/XHR的错误消息。 我应该采用哪种方法或如何建立连接并拦截此信息? 我知道这是必要的代码库:

    driver = new ChromeDriver();
                driver.Manage().Window.Maximize();
                devTools = driver as IDevTools;
                session = devTools.GetDevToolsSession();
                devToolsSession = session.GetVersionSpecificDomains<DevToolsSessionDomains>();
                devToolsSession.Network.Enable(new Network.EnableCommandSettings());

我试图创建一个 EventHandler 但不幸的是,这个事件的requestID与 DevTools 参数的requestID不匹配。 我应该如何获取requestID以及我需要什么方法来拦截出现在网络预览页面上的错误

在此处输入图像描述

所有错误都应记录到控制台域。 也许你正在寻找这个

devToolsSession.Domains.JavaScript.ConsoleApiCalled += (sender, e) =>
{
       Console.WriteLine("Log: {0} {1}", e.Timestamp, e.Type);
       e.Arguments.ToList().ForEach(x => Console.WriteLine($"Type: {x.Type}, 
       Value: {x.Value}"));
};

或拦截流量(未测试)

List<long> httpStatuses = new List<long>() { 500, 501, 502, 503, 504 };
    
_driver.GetDevToolsSession().Domains.Network.ResponsePaused += (o, args) =>
{
  if (httpStatuses.Contains(args.ResponseData.StatusCode))
                        //log something...
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM