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); })); }
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(); }
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)); })); }
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); }); }
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; })); }
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); } }
public ContactInformationPageBase(IBrowserSession session, ILogger logger) : base(session, logger) { _session = session; }
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; }
public PageBase(IBrowserSession session, ILogger logger) { _session = session; _logger = logger; }
public BookOneDayCarContactInformationPage(IBrowserSession session, ILogger <BookOneDayContactInformationPage> logger) : base(session, logger) { }
public BookOneDayFoodConfirmationPage(IBrowserSession session, ILogger <BookOneDayFoodConfirmationPage> logger) : base(session, logger) { }
public BookingDetailsPage(IBrowserSession session, ILogger <BookingDetailsPage> logger) : base(session, logger) { _session = session; _logger = logger; }
public BookOneDayFoodDetailsPage(IBrowserSession session, ILogger <BookOneDayFoodDetailsPage> logger) : base(session, logger) { }
public static Task SetValueWithScriptAsync(this IBrowserSession session, string cssSelector, string value) { return(session.InvokeAsync(driver => driver.ExecuteScript($"document.querySelector('{cssSelector}').value='{value}'"))); }
public static Task InvokeOnSelectElementAsync(this IBrowserSession session, By by, Action <SelectElement> handler) { return(InvokeOnElementAsync(session, by, x => handler(new SelectElement(x)))); }
public BookContantInformationPage(IBrowserSession session, ILogger <BookContantInformationPage> logger) : base(session, logger) { }
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; }
public DepartureSelectPage(IBrowserSession session, ILogger <DepartureSelectPage> logger) : base(session, logger) { _session = session; _logger = logger; }
public BookSeasonPassDepartureSelectPage(IBrowserSession session, ILogger <BookSeasonPassDepartureSelectPage> logger) : base(session, logger) { }
public static Task WaitForElementToDisappearAsync(this IBrowserSession session, By by) { return(WaitForAsync(session, driver => driver.FindElements(by).Where(x => x.IsDisplayed()).Count() == 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); // } //} }
public MyBookingPage(IBrowserSession session, ILogger <MyBookingPage> logger) : base(session, logger) { _session = session; _logger = logger; }
public BookSeasonPassCustomerProfilePage(IBrowserSession session, ILogger <CustomerProfilePage> logger) : base(session, logger) { }
public BookOneDayDepartureSelectPage(IBrowserSession session, ILogger <BookOneDayDepartureSelectPage> logger) : base(session, logger) { }
public LoginPage(IBrowserSession session, ILogger <LoginPage> logger) : base(session, logger) { _session = session; }
public BookSeasonPassDetailsPage(IBrowserSession session, ILogger <BookSeasonPassDetailsPage> logger) : base(session, logger) { }