Ejemplo n.º 1
0
        public static Task WaitForInteractiveReadyStateAsync(this IBrowserSession session)
        {
            return(session.InvokeAsync(driver =>
            {
                var wait = new WebDriverWait(_systemClock, driver, DefaultTimeout, TimeSpan.FromMilliseconds(100));

                wait.Until(_ => (bool?)driver.ExecuteScript("return (document.readyState === 'interactive' || document.readyState === 'complete') && window.jQuery && window.jQuery.active === 0") == true);
            }));
        }
Ejemplo n.º 2
0
 public _ShowContentFrame(IWebElement elem, IBrowserSession session, IWebDriver webDriver)
 {
     _elem      = elem;
     _session   = session;
     _webDriver = webDriver;
     _ads       = new List <_Ad>();
     _parentIds = new Dictionary <string, string>();
     this.extractFrameInfo();
 }
Ejemplo n.º 3
0
        public static Task WaitForAsync(this IBrowserSession session, Func <RemoteWebDriver, bool> condition)
        {
            return(session.InvokeAsync(driver =>
            {
                var wait = new WebDriverWait(_systemClock, driver, DefaultTimeout, TimeSpan.FromMilliseconds(100));

                wait.Until(_ => condition(driver));
            }));
        }
Ejemplo n.º 4
0
        public static async Task InvokeOnElementAsync(this IBrowserSession session, By by, Action <IWebElement> handler)
        {
            await WaitForElementToAppearAsync(session, by, 1);

            await session.InvokeAsync(driver =>
            {
                var element = driver.FindElements(by).Single(x => x.IsDisplayed());

                handler(element);
            });
        }
Ejemplo n.º 5
0
        public static Task WaitForAnyElementToAppearAsync(this IBrowserSession session, params By[] anyOf)
        {
            return(WaitForAsync(session, driver =>
            {
                foreach (var by in anyOf)
                {
                    if (driver.FindElements(by).Where(x => x.IsDisplayed()).Count() > 0)
                    {
                        return true;
                    }
                }

                return false;
            }));
        }
Ejemplo n.º 6
0
        public static async Task <bool> TryInvokeOnElementAsync(this IBrowserSession session, By by, Action <IWebElement> handler)
        {
            try
            {
                await WaitForElementToAppearAsync(session, by, 1);

                await session.InvokeAsync(driver =>
                {
                    var element = driver.FindElements(by).Single(x => x.IsDisplayed());

                    handler(element);
                });

                return(true);
            }
            catch (WebDriverTimeoutException)
            {
                return(false);
            }
        }
Ejemplo n.º 7
0
 public ContactInformationPageBase(IBrowserSession session, ILogger logger)
     : base(session, logger)
 {
     _session = session;
 }
Ejemplo n.º 8
0
 public BookOneDayCarCustomerProfilePage(IBrowserSession session, ILogger <CustomerProfilePage> logger) : base(session, logger)
 {
 }
 public BookingDetailsPageBase(IBrowserSession session, ILogger logger)
     : base(session, logger)
 {
     _session = session;
 }
 public BookingConfirmationPageBase(IBrowserSession session, ILogger logger)
     : base(session, logger)
 {
     _session = session;
 }
Ejemplo n.º 11
0
 public PageBase(IBrowserSession session, ILogger logger)
 {
     _session = session;
     _logger  = logger;
 }
Ejemplo n.º 12
0
 public BookOneDayCarContactInformationPage(IBrowserSession session, ILogger <BookOneDayContactInformationPage> logger)
     : base(session, logger)
 {
 }
Ejemplo n.º 13
0
 public BookOneDayFoodConfirmationPage(IBrowserSession session, ILogger <BookOneDayFoodConfirmationPage> logger)
     : base(session, logger)
 {
 }
Ejemplo n.º 14
0
 public BookingDetailsPage(IBrowserSession session, ILogger <BookingDetailsPage> logger)
     : base(session, logger)
 {
     _session = session;
     _logger  = logger;
 }
 public BookOneDayFoodDetailsPage(IBrowserSession session, ILogger <BookOneDayFoodDetailsPage> logger)
     : base(session, logger)
 {
 }
Ejemplo n.º 16
0
 public static Task SetValueWithScriptAsync(this IBrowserSession session, string cssSelector, string value)
 {
     return(session.InvokeAsync(driver => driver.ExecuteScript($"document.querySelector('{cssSelector}').value='{value}'")));
 }
Ejemplo n.º 17
0
 public static Task InvokeOnSelectElementAsync(this IBrowserSession session, By by, Action <SelectElement> handler)
 {
     return(InvokeOnElementAsync(session, by, x => handler(new SelectElement(x))));
 }
Ejemplo n.º 18
0
 public BookContantInformationPage(IBrowserSession session, ILogger <BookContantInformationPage> logger)
     : base(session, logger)
 {
 }
Ejemplo n.º 19
0
 public CustomerProfilePage(IBrowserSession session, ILogger <CustomerProfilePage> logger)
 {
     _session = session;
     _logger  = logger;
 }
 public BookSeasonPassConfirmationPage(IBrowserSession session, ILogger <BookSeasonPassConfirmationPage> logger)
     : base(session, logger)
 {
 }
 public DepartureSelectPageBase(IBrowserSession session, ILogger logger)
     : base(session, logger)
 {
     _session = session;
 }
Ejemplo n.º 22
0
 public DepartureSelectPage(IBrowserSession session, ILogger <DepartureSelectPage> logger)
     : base(session, logger)
 {
     _session = session;
     _logger  = logger;
 }
 public BookSeasonPassDepartureSelectPage(IBrowserSession session, ILogger <BookSeasonPassDepartureSelectPage> logger)
     : base(session, logger)
 {
 }
Ejemplo n.º 24
0
 public static Task WaitForElementToDisappearAsync(this IBrowserSession session, By by)
 {
     return(WaitForAsync(session, driver => driver.FindElements(by).Where(x => x.IsDisplayed()).Count() == 0));
 }
Ejemplo n.º 25
0
        public override void Handle(Job job)
        {
            var             factory  = new BrowserSessionFactory();
            BrowserSettings settings = BrowserSettings.CreateDefault();

            PageContent content           = null;
            Exception   scrapingException = null;

            try
            {
                IBrowserSession session = null;
                try
                {
                    session = settings is RemoteBrowserSettings
                                              ? factory.CreateRemote((RemoteBrowserSettings)settings)
                                              : factory.Create(settings);

                    //content = session.Scrape(new Uri(job.Url), this._isReferenceScraping);
                    EtsyStrategy strategy = new EtsyGameStrategy(job);
                    session.ProcessJob(strategy);
                    //strategy.process()
                }
                finally
                {
                    try
                    {
                        if (session != null)
                        {
                            session.Dispose();
                        }
                    }
                    catch (Exception ex)
                    {
                        // Sometimes session disposing generates an error.
                        throw new ApplicationException("Session was not closed correctly.", ex);
                    }
                }
            }
            catch (Exception ex)
            {
                scrapingException = ex;
                _tracer.TraceData(TraceEventType.Warning, 0,
                                  string.Format("Error when scraping page for (ID = {0}).\r\n", job.ID), ex);
            }

            //while (true)
            //{
            //    // Reload the job. It may be changed since first loading by other worker.
            //    JobWithContent jobWithContent = new JobManager().LoadWithContent(job.ID);
            //    if (this._isReferenceScraping)
            //    {
            //        jobWithContent.ReferenceScrapingHost = getWorkerName();
            //    }
            //    else
            //    {
            //        jobWithContent.TestScrapingHost = getWorkerName();
            //    }

            //    // Job has already been failed by other worker. No actions required.
            //    if (jobWithContent.Status == JobStatus.Failed)
            //    {
            //        return;
            //    }

            //    if (scrapingException == null)
            //    {
            //        Debug.Assert(content != null);
            //        if (this._isReferenceScraping)
            //        {
            //            jobWithContent.SetReferenceContent(content);
            //        }
            //        else
            //        {
            //            jobWithContent.SetTestContent(content);
            //        }
            //    }
            //    else
            //    {
            //        jobWithContent.SetFailed(scrapingException.Message);
            //    }

            //    try
            //    {
            //        new JobManager().SaveJobWithContent(jobWithContent);
            //        _tracer.TraceEvent(TraceEventType.Verbose, 0, "{0} scraping for job (ID = {1}) finished {2}.",
            //                           this._isReferenceScraping ? "Reference" : "Test", job.ID,
            //                           job.Status == JobStatus.Failed ? "with errors" : "successfully.");
            //        return;
            //    }
            //    catch (DbUpdateException)
            //    {
            //        _tracer.TraceInformation("Job (ID = {0}) might been changed by other worker. Retrying the operation...", job.ID);
            //    }
            //}
        }
Ejemplo n.º 26
0
 public MyBookingPage(IBrowserSession session, ILogger <MyBookingPage> logger)
     : base(session, logger)
 {
     _session = session;
     _logger  = logger;
 }
 public BookSeasonPassCustomerProfilePage(IBrowserSession session, ILogger <CustomerProfilePage> logger) : base(session, logger)
 {
 }
Ejemplo n.º 28
0
 public BookOneDayDepartureSelectPage(IBrowserSession session, ILogger <BookOneDayDepartureSelectPage> logger)
     : base(session, logger)
 {
 }
Ejemplo n.º 29
0
 public LoginPage(IBrowserSession session, ILogger <LoginPage> logger)
     : base(session, logger)
 {
     _session = session;
 }
Ejemplo n.º 30
0
 public BookSeasonPassDetailsPage(IBrowserSession session, ILogger <BookSeasonPassDetailsPage> logger)
     : base(session, logger)
 {
 }