private void TakeScreenshot(ScreenshotRequestModel request, int timeout, int width, int height, string savePath, int wait) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); try { Func <Screenshot> func = () => { try { var driver = _webDriverFactory.CreateWebDriver(timeout); driver.Navigate().GoToUrl($"http://{request.Url}"); driver.Wait(TimeSpan.FromSeconds(wait)); var ss = ((ITakesScreenshot)driver).GetScreenshot(); return(ss); } catch { return(null); } }; var task = Task.Run(func); if (task.Wait(TimeSpan.FromSeconds(timeout + wait))) { var ss = task.Result; if (ss == null) { throw new Exception(); } var formatted = _screenshotFormatter.FormatScreenshot(ss, width, height); _screenshotSaver.Save(formatted, savePath, request.Url); } else { throw new TimeoutException("Timeout"); } stopwatch.Stop(); request.Elapsed = stopwatch.Elapsed; request.Result = "Done"; } catch (TimeoutException) { stopwatch.Stop(); request.Elapsed = stopwatch.Elapsed; request.Result = "Timeout"; } catch { stopwatch.Stop(); request.Elapsed = stopwatch.Elapsed; request.Result = "Error"; } }
public FeedSynchronizer( IFeedManager feedManager, IHtmlService htmlService, IMatchesProvider matchesProvider, IWebDriverFactory webDriverFactory, IUnprocessedFeedManager unprocessedFeedManager, IWebPagesService <RemoteWebDriver> webPagesService) { this.feedManager = feedManager; this.htmlService = htmlService; this.webPagesService = webPagesService; this.matchesProvider = matchesProvider; this.unprocessedFeedManager = unprocessedFeedManager; this.webDriver = webDriverFactory.CreateWebDriver(CommonConstants.FEED_PORT); }
private static void SetBaseSettings() { var rnd = new Random(); var testMode = rnd.Next(0, 100); Console.WriteLine(testMode); if (testMode > 49) { _factory = new ChromeFactory(); } else { _factory = new FireFoxFactory(); } _browserDriver = _factory.CreateWebDriver(); _browserDriver.Manage().Timeouts().ImplicitWait = WaitTime; _th = new TestHelper(); }