public WxePostBackInCompletionDetectionStrategy([NotNull] PageObjectContext context, int expectedWxePostBackSequenceNumberIncrease) { ArgumentUtility.CheckNotNull("context", context); _context = context; _expectedWxePostBackSequenceNumberIncrease = expectedWxePostBackSequenceNumberIncrease; }
private static string GetPageTitle([NotNull] PageObjectContext context) { // Note: do not use page.GetTitle() instead, it may be specifically overloaded for a certain type of page which is not yet fully loaded! ArgumentUtility.CheckNotNull("context", context); return(context.Scope.FindCss("title").InnerHTML); }
/// <inheritdoc/> public void WaitForCompletion(PageObjectContext context, object state) { ArgumentUtility.CheckNotNull("context", context); ArgumentUtility.CheckNotNull("state", state); var oldWxeFunctionToken = (string)state; WxeCompletionDetectionHelpers.WaitForNewWxeFunctionToken(s_log, _context, oldWxeFunctionToken); const int expectedWxePostBackSequenceNumber = 2; WxeCompletionDetectionHelpers.WaitForExpectedWxePostBackSequenceNumber(s_log, _context, expectedWxePostBackSequenceNumber); }
/// <inheritdoc/> public void WaitForCompletion(PageObjectContext context, object state) { ArgumentUtility.CheckNotNull("context", context); ArgumentUtility.CheckNotNull("state", state); var oldWxePostBackSequenceNumber = (int)state; WxeCompletionDetectionHelpers.WaitForExpectedWxePostBackSequenceNumber( s_log, _context, oldWxePostBackSequenceNumber, _expectedWxePostBackSequenceNumberIncrease); }
/// <inheritdoc/> public void WaitForCompletion(PageObjectContext context, object state) { var states = (List <object>)state; Assertion.IsNotNull(states, "The state should never be null - developer error."); var stragiesWithState = _strategies.Zip(states, (s, ss) => new { Strategy = s, State = ss }); foreach (var strategyWithState in stragiesWithState) { strategyWithState.Strategy.WaitForCompletion(context, strategyWithState.State); } }
/// <inheritdoc/> public object PrepareWaitForCompletion(PageObjectContext context) { var states = new List <object>(); // ReSharper disable once LoopCanBeConvertedToQuery foreach (var strategy in _strategies) { var state = strategy.PrepareWaitForCompletion(context); states.Add(state); } return(states); }
/// <summary> /// Waits for the WXE function token to change from <paramref name="oldWxeFunctionToken"/> to a new function token. /// </summary> public static void WaitForNewWxeFunctionToken([NotNull] ILog log, [NotNull] PageObjectContext context, [NotNull] string oldWxeFunctionToken) { ArgumentUtility.CheckNotNull("log", log); ArgumentUtility.CheckNotNull("context", context); ArgumentUtility.CheckNotNullOrEmpty("oldWxeFunctionToken", oldWxeFunctionToken); log.DebugFormat("State: previous WXE-FT: {0}.", oldWxeFunctionToken); log.DebugFormat("Parameters: window: '{0}' scope: '{1}'.", context.Window.Title, GetPageTitle(context)); context.Window.Query(() => GetWxeFunctionToken(context) != oldWxeFunctionToken, true); Assertion.IsTrue( GetWxeFunctionToken(context) != oldWxeFunctionToken, string.Format("Expected WXE-FT to be different to '{0}', but it is equal.", oldWxeFunctionToken)); }
/// <summary> /// Waits for the WXE postback sequence number in the given <paramref name="context"/> to increase from /// <paramref name="oldWxePostBackSequenceNumber"/> by <paramref name="expectedWxePostBackSequenceNumberIncrease"/>. /// </summary> public static void WaitForExpectedWxePostBackSequenceNumber( [NotNull] ILog log, [NotNull] PageObjectContext context, int oldWxePostBackSequenceNumber, int expectedWxePostBackSequenceNumberIncrease) { ArgumentUtility.CheckNotNull("log", log); ArgumentUtility.CheckNotNull("context", context); var expectedWxePostBackSequenceNumber = oldWxePostBackSequenceNumber + expectedWxePostBackSequenceNumberIncrease; log.DebugFormat("State: previous WXE-PSN: {0}, expected WXE-PSN: {1}.", oldWxePostBackSequenceNumber, expectedWxePostBackSequenceNumber); WaitForExpectedWxePostBackSequenceNumber(log, context, expectedWxePostBackSequenceNumber); }
/// <summary> /// Waits for the WXE postback sequence number in the given <paramref name="context"/> to reach the /// <paramref name="expectedWxePostBackSequenceNumber"/>. /// </summary> public static void WaitForExpectedWxePostBackSequenceNumber( [NotNull] ILog log, [NotNull] PageObjectContext context, int expectedWxePostBackSequenceNumber) { ArgumentUtility.CheckNotNull("log", log); ArgumentUtility.CheckNotNull("context", context); log.DebugFormat("Parameters: window: '{0}' scope: '{1}'.", context.Window.Title, GetPageTitle(context)); var newWxePostBackSequenceNumber = context.Window.Query( () => GetWxePostBackSequenceNumber(context), expectedWxePostBackSequenceNumber); Assertion.IsTrue( newWxePostBackSequenceNumber == expectedWxePostBackSequenceNumber, string.Format("Expected WXE-PSN to be '{0}', but it actually is '{1}'", expectedWxePostBackSequenceNumber, newWxePostBackSequenceNumber)); }
public MultiWindowTestPageObject(PageObjectContext context) : base(context) { }
/// <summary> /// Create a browser /// </summary> /// <param name="browsers">Browser name</param> public Browser(string browsers) { // Set poml context Pomls = new PageObjectContext(new DirectoryInfo(Common.PomlFiles)).Get(); // Set browser switch (browsers.ToLower()) { case "chrome": IWebDriver = new ChromeDriver(); break; case "chrome-de": ChromeOptions option_de = new ChromeOptions(); option_de.AddArgument("--lang=de"); IWebDriver = new ChromeDriver(); break; case "chrome-fr": ChromeOptions option_fr = new ChromeOptions(); option_fr.AddArgument("--lang=fr"); IWebDriver = new ChromeDriver(); break; case "chrome-es": ChromeOptions option_es = new ChromeOptions(); option_es.AddArgument("--lang=es"); IWebDriver = new ChromeDriver(); break; case "firefox": IWebDriver = new FirefoxDriver(); break; case "firefox-de": FirefoxProfile profile_de = new FirefoxProfile(); profile_de.SetPreference("intl.accept_languages", "de"); IWebDriver = new FirefoxDriver(profile_de); break; case "firefox-fr": FirefoxProfile profile_fr = new FirefoxProfile(); profile_fr.SetPreference("intl.accept_languages", "fr"); IWebDriver = new FirefoxDriver(profile_fr); break; case "firefox-es": FirefoxProfile profile_es = new FirefoxProfile(); profile_es.SetPreference("intl.accept_languages", "es"); IWebDriver = new FirefoxDriver(profile_es); break; case "grid": DesiredCapabilities abilites = new DesiredCapabilities(); abilites.SetCapability(CapabilityType.BrowserName, "firefox"); IWebDriver = new RemoteWebDriver(new Uri(Common.GridPath), abilites); break; case "ie": case "internetexplorer": case "internet explorer": IWebDriver = new InternetExplorerDriver(); break; default: throw new ConfigException("Config file has been incorrectly set up. '" + browsers + "' is not a valid browser option"); } // Browse to test site NavigateTo(Common.SiteUrl); }
public HtmlPageObject([NotNull] PageObjectContext context) : base(context) { }
/// <inheritdoc/> public object PrepareWaitForCompletion(PageObjectContext context) { ArgumentUtility.CheckNotNull("context", context); return(WxeCompletionDetectionHelpers.GetWxePostBackSequenceNumber(_context)); }
/// <inheritdoc/> public void HandleModalDialog(PageObjectContext context) { ArgumentUtility.CheckNotNull("context", context); context.Window.AcceptModalDialogFixed(context.Browser); }
/// <summary> /// Returns the current WXE postback sequence number in the given <paramref name="context"/>. /// </summary> public static int GetWxePostBackSequenceNumber([NotNull] PageObjectContext context) { ArgumentUtility.CheckNotNull("context", context); return(int.Parse(context.Scope.FindId(c_wxePostBackSequenceNumberFieldId).Value)); }
/// <inheritdoc/> public object PrepareWaitForCompletion(PageObjectContext context) { ArgumentUtility.CheckNotNull("context", context); return(WxeCompletionDetectionHelpers.GetWxeFunctionToken(_context)); }
public WxeResetInCompletionDetectionStrategy([NotNull] PageObjectContext context) { ArgumentUtility.CheckNotNull("context", context); _context = context; }
/// <inheritdoc/> public void WaitForCompletion(PageObjectContext context, object state) { }
/// <summary> /// Returns the current WXE function token in the given <paramref name="context"/>. /// </summary> public static string GetWxeFunctionToken([NotNull] PageObjectContext context) { ArgumentUtility.CheckNotNull("context", context); return(context.Scope.FindId(c_wxeFunctionToken).Value); }
public WebFormsTestPageObject(PageObjectContext context) : base(context) { }
/// <inheritdoc/> public object PrepareWaitForCompletion(PageObjectContext context) { return(null); }