Exemple #1
0
        /// <summary>
        /// Connects to the specified chrome session.
        /// </summary>
        /// <param name="serviceProvider"></param>
        /// <param name="sessionInfo"></param>
        /// <returns></returns>
        public static async Task <SkraprDevTools> Connect(IServiceProvider serviceProvider, ChromeSessionInfo sessionInfo)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (sessionInfo == null)
            {
                throw new ArgumentNullException(nameof(sessionInfo));
            }

            var chromeSessionLogger = serviceProvider
                                      .GetService <ILoggerFactory>()
                                      .CreateLogger <ChromeSession>();

            var devToolsLogger = serviceProvider
                                 .GetService <ILoggerFactory>()
                                 .CreateLogger <SkraprDevTools>();

            //Create a new session using the information in the session info.
            var session  = new ChromeSession(chromeSessionLogger, sessionInfo.WebSocketDebuggerUrl);
            var devTools = new SkraprDevTools(devToolsLogger, session, sessionInfo.Id);
            await devTools.Initialize();

            return(devTools);
        }