/// <summary> /// Finds and waits for an element that meets specified conditions at specified time. /// </summary> /// <param name="element">The element.</param> /// <param name="locator">The locator.</param> /// <param name="timeout">The timeout.</param> /// <param name="condition">The condition to be met.</param> /// <param name="customMessage">Custom message to be displayed when there is no possible to get element</param> /// <returns> /// Return found element /// </returns> /// <example>How to use it: <code> /// this.Driver.GetElement(this.loginButton, timeout, e => e.Displayed); /// </code></example> public static IWebElement GetElement(this ISearchContext element, ElementLocator locator, double timeout, Func <IWebElement, bool> condition, [Optional] string customMessage) { var driver = element.ToDriver(); if (DriversCustomSettings.IsDriverSynchronizationWithAngular(driver)) { driver.WaitForAngular(); } var by = locator.ToBy(); var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout)) { Message = customMessage }; wait.IgnoreExceptionTypes(typeof(StaleElementReferenceException)); wait.Until( drv => { var ele = element.FindElement(@by); return(condition(ele)); }); return(element.FindElement(@by)); }
public void CheckSynchronizationWithAngularFuctionality() { var driverContext = new Ocaramba.DriverContext { CurrentDirectory = TestContext.CurrentContext.TestDirectory }; driverContext.Start(); var Default_false = DriversCustomSettings.IsDriverSynchronizationWithAngular(driverContext.Driver); driverContext.Driver.SynchronizeWithAngular(true); var TurnOn_true = DriversCustomSettings.IsDriverSynchronizationWithAngular(driverContext.Driver); driverContext.Driver.SynchronizeWithAngular(false); var TurnOn_false = DriversCustomSettings.IsDriverSynchronizationWithAngular(driverContext.Driver); driverContext.Stop(); Assert.False(Default_false, "Default setting is not false"); Assert.True(TurnOn_true, "Setting is not true"); Assert.False(TurnOn_false, "Setting is not false"); }
public void CheckSynchronizationWithAngularFuctionality() { #if netcoreapp2_2 string folder = Directory.GetCurrentDirectory(); #endif #if net47 string folder = TestContext.CurrentContext.TestDirectory; #endif var driverContext = new Ocaramba.DriverContext { CurrentDirectory = folder }; driverContext.Start(); var Default_false = DriversCustomSettings.IsDriverSynchronizationWithAngular(driverContext.Driver); driverContext.Driver.SynchronizeWithAngular(true); var TurnOn_true = DriversCustomSettings.IsDriverSynchronizationWithAngular(driverContext.Driver); driverContext.Driver.SynchronizeWithAngular(false); var TurnOn_false = DriversCustomSettings.IsDriverSynchronizationWithAngular(driverContext.Driver); driverContext.Stop(); Assert.False(Default_false, "Default setting is not false"); Assert.True(TurnOn_true, "Setting is not true"); Assert.False(TurnOn_false, "Setting is not false"); }
/// <summary> /// Enable synchronization with angular. /// </summary> /// <param name="webDriver">The WebDriver.</param> /// <param name="enable">Enable or disable synchronization.</param> public static void SynchronizeWithAngular(this IWebDriver webDriver, bool enable) { DriversCustomSettings.SetAngularSynchronizationForDriver(webDriver, enable); }
/// <summary> /// Enable a secondary synchronization with angular. /// </summary> /// <param name="enable">Enable or disable synchronization.</param> public void AdditionalSynchronizationWithAngular(bool enable) { DriversCustomSettings.SetAngularSynchronizationForDriver(NgDriver, enable); }