示例#1
0
        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";
            }
        }
示例#2
0
 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);
 }
示例#3
0
        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();
        }