public static void OpenNewWindow(this IActionSyntaxProvider I, string url)
        {
            var browser = FluentTest.ProviderInstance as IWebDriver;
            var script  = string.Format("window.open('{0}', '_blank');", url);

            ((IJavaScriptExecutor)browser).ExecuteScript(script);
        }
 public static void LogOn(this IActionSyntaxProvider I, string userName, string password)
 {
     I.Open(UrlHelper.BaseUrl + "users/account/LogOn");
     I.Expect.Url(x => x.LocalPath.Contains("LogOn"));
     I.Enter(EnvironmentSettings.TestAccountName).In("#SignIn_UserNameOrEmail");
     I.Enter(EnvironmentSettings.TestAccountPassword).In("#SignIn_Password");
     I.Click("#signin-link");
     I.Wait(1);
 }
Пример #3
0
        public static void ExpectMultiple(this IActionSyntaxProvider I, int expected, string cssSelector)
        {
            var items = I.FindMultiple(cssSelector).Elements;
            var cnt   = items.Count;

            if (cnt != expected)
            {
                throw new Exceptions.FluentExpectFailedException($"Expected {expected} items, but actually found {cnt}. Selector:[{cssSelector}].");
            }
        }
Пример #4
0
        public static IActionSyntaxProvider WaitForAjaxFinish(this IActionSyntaxProvider I, int timeout = 30000)
        {
            Log.Debug("Enter WaitForAjaxFinish");
            var start = DateTime.Now;
            var end   = start.AddMilliseconds(timeout);

            // wait for the script being triggered.
            I.Wait(TimeSpan.FromMilliseconds(300));

            var endCount = 0;

            var count = 100;

            while (DateTime.Now < end && count > endCount)
            {
                try
                {
                    I.Wait(TimeSpan.FromMilliseconds(100));
                    count = Int32.Parse(I.ExecuteScript("return $.active").ToString());
                }
                catch (UnhandledAlertException)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("Object reference not set to an instance of an object") ||
                        ex.Message.Contains("$ is not defined"))
                    {
                        count = 0;
                    }
                }
            }

            // wait for any javascript execution after ajax executed
            I.Wait(TimeSpan.FromMilliseconds(300));

            Log.Debug("Leave WaitForAjaxFinish. Waited " + (DateTime.Now - start).TotalMilliseconds);

            return(I);
        }
        public static void UploadPackageUsingUI(this IActionSyntaxProvider I, string fullPackagePath)
        {
            // Navigate to the Upload Package page.  This will fail if the user never uploaded the previous package, hence the error handling.
            I.Open(string.Format(UrlHelper.UploadPageUrl));
            try
            {
                I.Expect.Url(x => x.AbsoluteUri.Contains("/packages/manage/Upload"));
            }
            catch
            {
                I.Click("a[class='cancel']");
            }

            // Upload the package.
            I.Click("input[name='UploadFile']");
            I.Wait(5);
            I.Type(fullPackagePath);
            I.Press("{ENTER}");
            I.Wait(5);
            I.Click("input[value='Upload']");
        }
Пример #6
0
 internal WbTstrTextAppendSyntaxProvider(WbTstrActionSyntaxProvider actionSyntaxProvider, ITextAppendSyntaxProvider textAppendSyntaxProvider, ILogger logger)
 {
     _actionSyntaxProvider     = actionSyntaxProvider;
     _textAppendSyntaxProvider = textAppendSyntaxProvider;
     _logger = logger;
 }
 public static void OpenNewWindow(this IActionSyntaxProvider I)
 {
     OpenNewWindow(I, "");
 }
        public static void Quit(this IActionSyntaxProvider I)
        {
            var browser = FluentTest.ProviderInstance as IWebDriver;

            browser.Quit();
        }
 public WithSyntaxProvider(IActionSyntaxProvider actionSyntaxProvider)
 {
     this.actionSyntaxProvider = actionSyntaxProvider;
     this.inlineSettings = FluentSettings.Current.Clone();
 }
Пример #10
0
 public WithSyntaxProvider(IActionSyntaxProvider actionSyntaxProvider)
 {
     this.actionSyntaxProvider = actionSyntaxProvider;
     this.inlineSettings       = FluentSettings.Current.Clone();
 }
Пример #11
0
 public static object ExecuteScript(this IActionSyntaxProvider I, string script, params object[] args)
 {
     return((I.GetWebDriver() as IJavaScriptExecutor).ExecuteScript(script, args));
 }
Пример #12
0
 public static IWebDriver GetWebDriver(this IActionSyntaxProvider I)
 {
     return(((I.Find("html").Element as Element).WebElement as RemoteWebElement).WrappedDriver);
 }
 internal WbTstrDragDropSyntaxProvider(WbTstrActionSyntaxProvider actionSyntaxProvider, IDragDropSyntaxProvider dragDropSyntaxProvider, ILogger logger)
 {
     _actionSyntaxProvider   = actionSyntaxProvider;
     _dragDropSyntaxProvider = dragDropSyntaxProvider;
     _logger = logger;
 }
 internal WbTstrSelectSyntaxProvider(WbTstrActionSyntaxProvider actionSyntaxProvider, ISelectSyntaxProvider selectSyntaxProvider, ILogger logger)
 {
     _actionSyntaxProvider = actionSyntaxProvider;
     _selectSyntaxProvider = selectSyntaxProvider;
     _logger = logger;
 }