Example #1
0
        public static void Execute(this Step step, ref IWebDriver webDriver)
        {
            try
            {
                step.Measure.StartDate = DateTime.Now;
                switch (step.Type)
                {
                case (StepType.CREATE_SESSION):
                    webDriver = WebDriverHelper.CreateSession();
                    var sessionId = ((OpenQA.Selenium.Remote.RemoteWebDriver)webDriver).SessionId;
                    webDriver.ResizeWindow(SeleniumConfig.BrowserSize);
                    step.SessionId = sessionId.ToString();
                    break;

                case (StepType.NAVIGATE_URL):
                    //webDriver.Url = step.Param;
                    webDriver.Navigate().GoToUrl(step.Param);
                    break;

                case (StepType.CLICK_BUTTON):
                    webDriver.SmartClick(step.Selector);
                    break;

                case (StepType.SET_TEXT):
                    webDriver.SetText(step.Selector, step.Value);
                    break;

                case (StepType.ASSERT_TEXT):
                    webDriver.AssertTextEqual(step.Selector, step.Value);
                    break;

                case (StepType.TAKE_SCREENSHOT):
                    webDriver.TakeScreenshot(step.Value);
                    break;

                case (StepType.RESIZE_WINDOW):
                    webDriver.ResizeWindow(SeleniumConfig.BrowserSize);
                    break;

                case StepType.EXECUTE_SCENARIO:
                    throw new InvalidOperationException("Selenium launcher execute only elementary step");

                default:
                    throw new NotImplementedException();
                }
                step.Measure.EndDate = DateTime.Now;
            }
            catch (Exception ex)
            {
                step.Failed     = true;
                step.StackTrace = ex.Message;
                throw ex;
            }
        }
Example #2
0
        public static void Execute(this Step step, ref IWebDriver webDriver, ExecutionEnvironment executionEnvironment)
        {
            try
            {
                step.Measure.StartDate = DateTime.Now;
                _log_.Trace($"Begin Executing Step {step.Name} | {step.Param}| {step.Value} | {step.Measure.StartDate}");
                switch (step.Type)
                {
                case (StepType.CREATE_SESSION):
                {
                    webDriver = WebDriverHelper.CreateSession(executionEnvironment);
                    var sessionId  = ((OpenQA.Selenium.Remote.RemoteWebDriver)webDriver).SessionId;
                    var windowSize = ConvertStringToSize(step.Param);
                    webDriver.ResizeWindow(windowSize);
                    _log_.Trace($"Session created : {sessionId.ToString()}");
                    step.SessionId = sessionId.ToString();
                    break;
                }

                case (StepType.NAVIGATE_URL):
                    var url = UrlHelper.Combine(webDriver.Url, step.Param);
                    webDriver.Navigate().GoToUrl(url);
                    break;

                case (StepType.CLICK_BUTTON):
                    webDriver.SmartClick(step.Selector);
                    break;

                case (StepType.SET_TEXT):
                    webDriver.SetText(step.Selector, step.Value);
                    break;

                case (StepType.MOUSE_HOVER):
                    webDriver.MouseHover(step.Selector);
                    break;

                case (StepType.ASSERT_TEXT):
                    webDriver.AssertTextEqual(step.Selector, step.Value);
                    break;

                case (StepType.TAKE_SCREENSHOT):
                    webDriver.TakeScreenshot(step.Value, Path.Combine(executionEnvironment.OutputDirectoryLocation));
                    break;

                case (StepType.RESIZE_WINDOW):
                {
                    var windowSize = ConvertStringToSize(step.Param);
                    webDriver.ResizeWindow(windowSize);
                    break;
                }

                case (StepType.EXECUTE_JAVASCRIPT):
                    var result = webDriver.ExecuteJavaScript <string>(step.Param);
                    if (result != step.Value)
                    {
                        throw new Exception($"{step.Param} return {result} and not {step.Value} as expected.");
                    }
                    break;

                case (StepType.ASSERT_EXISTS):
                    webDriver.AssertExists(step.Selector);
                    break;

                case StepType.EXECUTE_SCENARIO:
                    throw new InvalidOperationException("Selenium launcher execute only elementary step");

                default:
                    throw new NotImplementedException();
                }
                step.Measure.EndDate = DateTime.Now;
                step.Failed          = false;
                _log_.Trace($"End Executing Step {step.Name} | {step.Measure.StartDate} - {step.Measure.EndDate}");
            }
            catch (Exception ex)
            {
                _log_.Trace($"End Executing Step with failure {step.Name} | {ex.Message}");
                step.Failed     = true;
                step.StackTrace = ex.Message;
                throw ex;
            }
        }