Пример #1
0
        /// <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 =&gt; 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));
        }
Пример #2
0
        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");
        }
Пример #3
0
        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");
        }
Пример #4
0
 /// <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);
 }
Пример #5
0
 /// <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);
 }