예제 #1
0
        public void BeforeScenario()
        {
            // Isso aqui roda ANTES de cada cenário/contexto/esquema do cenário!

            // Seta o browser da execução
            Browser browser    = Browser.CHROME; //default é CHROME
            string  strBrowser = ConfigurationManager.AppSettings["Browser"];

            if (!Enum.TryParse(strBrowser, out browser))
            {
                browser = Browser.CHROME;
            }

            SeleniumBase.LogInfo($"Preparando o WebDriver para o browser [{browser.ToString()}]...", "BeforeScenario");
            object obj = SharedData.GetObject("__WEBDRIVER__");

            // Se existir nenhum webdriver, aproveita o driver existente
            if (obj != null)
            {
                SeleniumBase.ExistingLocalDriver((IWebDriver)obj);
            }
            // se não existir nenhum driver aberto, cria um
            else
            {
                SharedData.SetObject("__WEBDRIVER__", SeleniumBase.ConfigureLocalDriver(browser));
            }
            // e compartilha
            SeleniumBase.LogInfo("OK!", "BeforeScenario");
        }
예제 #2
0
        public void PostReply(string message)
        {
            IWebElement element = SeleniumBase.IsElementExists(By.TagName(DataReader.GetLocator("commenttextarea")));

            SeleniumBase.NavigateTo(By.TagName(DataReader.GetLocator("commenttextarea")));
            SeleniumBase.SendKeys(element, message, "PostReply");
        }
예제 #3
0
        public void ClickCancel()
        {
            SeleniumBase.NavigateTo(By.CssSelector(DataReader.GetLocator("cancelElement")));
            System.Threading.Thread.Sleep(4000);
            IWebElement element = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("cancelElement")));

            SeleniumBase.Click(element, "boking duration");
        }
 public void WriteToolOutput(string message)
 {
     if (_listener != null)
     {
         _listener.WriteToolOutput(message);
         SeleniumBase.LogInfo(message, "Specflow", false);
     }
 }
예제 #5
0
        public bool IsBookingItemDisplayed()
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("bookingItem")));

            if (null == element)
            {
                return(false);
            }
            return(true);
        }
예제 #6
0
        public void ClickToddlerBootcampAmenity()
        {
            IWebElement toddlerBootcampAmenity = SeleniumBase.IsElementExists(By.CssSelector(DataReader.GetLocator("toddlerBootcampAmenity")));

            if (null != toddlerBootcampAmenity)
            {
                SeleniumBase.NavigateTo(By.CssSelector(DataReader.GetLocator("toddlerBootcampAmenity")));
                SeleniumBase.Click(toddlerBootcampAmenity, "ClickToddlerBootcampAmenity menu");
            }
        }
예제 #7
0
        public bool IsRequestABookingVisible()
        {
            IWebElement requestaBookingButton = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("requestaBookingButtonElement")));

            if (null == requestaBookingButton)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
예제 #8
0
        public bool IsPendingBookingShown()
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("bookingPending")));

            if (null == element)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
예제 #9
0
        public bool IsBookingError()
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("ticketNumberText")));

            if (element != null)
            {
                System.Threading.Thread.Sleep(5000);
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #10
0
        public static void BeforeTestRun()
        {
            // Isso aqui roda ANTES do teste inteiro!
            // Esse método não escreve nada no log de execução do teste, pois é um método que executa "fora" do escopo do teste
            // Porém, os logs podem ser vistos no log em texto do log4net (Execution.log)

            // Inicialização do log em texto (log4net)
            SeleniumBase.InitializeLogger();
            // Finaliza quaisquer drivers abertos
            Utils.EndProcess();

            // Recupera variáveis BDD do banco de dados local
            UtilsHelper.VariablesDB.GetAllVariablesInDB(ref SharedData.sharedVariables, ref SharedData.sharedObjects);
        }
예제 #11
0
        public void AfterStep()
        {
            // Isso aqui roda DEPOIS de cada step (frase)!

            // Captura se o step deu erro, e caso TRUE, tira uma print da tela WEB
            if (ScenarioContext.Current.TestError != null)
            {
                SeleniumBase.LogError(ScenarioContext.Current.TestError.StackTrace, null, "Specflow", false);
                SeleniumBase.TakePrint();
            }
            // verifica se o step é um THEN, caso TRUE, tira uma print da tela WEB!
            else if (ScenarioStepContext.Current.StepInfo.StepDefinitionType.ToString().Equals("Then"))
            {
                SeleniumBase.TakePrint();
            }
        }
예제 #12
0
        public void WaitForWindowLoad()
        {
            System.Threading.Thread.Sleep(10000);
            int count = 0;

            while (count < 20)
            {
                IWebElement commenttextareahome = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("commenttextareahome")));
                if (commenttextareahome != null)
                {
                    break;
                }
                System.Threading.Thread.Sleep(10000);
            }
            System.Threading.Thread.Sleep(4000);
        }
예제 #13
0
        public void SelectAmenity(string amenityName)
        {
            IWebElement element = SeleniumBase.IsElementExists(By.CssSelector(DataReader.GetLocator("amenitiesList")));

            if (null != element)
            {
                ReadOnlyCollection <IWebElement> elements = element.FindElements(By.TagName("a"));
                foreach (IWebElement option in elements)
                {
                    if (option.Text.Contains(amenityName))
                    {
                        SeleniumBase.NavigateTo(option);
                        SeleniumBase.Click(option, "Click Amenity link");
                        break;
                    }
                }
            }
        }
예제 #14
0
        public void EnterPassword(string text)
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.Id(DataReader.GetLocator("password")));

            element.SendKeys(text);
        }
예제 #15
0
 public ResultPageMethods(SeleniumBase _seleniumBase)
 {
     seleniumBase = _seleniumBase;
 }
예제 #16
0
        public void ClickHelpdeskMenu()
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("helpDeskMenu")));

            SeleniumBase.Click(element, "Click help desk");
        }
예제 #17
0
        public string GetBooingStatus()
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("statusItem")));

            return(element.Text);
        }
예제 #18
0
        public void EnterInstructions(string message)
        {
            IWebElement instructionsTextBoxElement = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("instructionsTextBox")));

            SeleniumBase.SendKeys(instructionsTextBoxElement, message, "set values in instaruction");
        }
예제 #19
0
        public void ClickComment()
        {
            IWebElement bookStartTimeOption = SeleniumBase.IsElementVisible(By.XPath(DataReader.GetLocator("commentButton")));

            SeleniumBase.Click(bookStartTimeOption, "book start time");
        }
예제 #20
0
        public void ClickBooking()
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("bookingItem")));

            SeleniumBase.Click(element, "ClickBooking");
        }
예제 #21
0
        public void ClickBookStart()
        {
            IWebElement bookStartTimeOption = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("bookStartTime")));

            SeleniumBase.Click(bookStartTimeOption, "book start time");
        }
예제 #22
0
        public void ClickNext()
        {
            IWebElement nextButton = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("nextButtonElement")));

            SeleniumBase.Click(nextButton, "Click next");
        }
예제 #23
0
        public void FindTicket(string tickeNumber)
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("findTicketElement")));

            SeleniumBase.SendKeys(element, tickeNumber, "FindTicket");
        }
예제 #24
0
        public void ClickBookingDuration()
        {
            IWebElement bookDurationOption = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("bookDuration")));

            SeleniumBase.Click(bookDurationOption, "boking duration");
        }
예제 #25
0
        public void ClickBookingNextButton()
        {
            IWebElement bookingNextButtonElement = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("bookingNextButton")));

            SeleniumBase.Click(bookingNextButtonElement, "click next");
        }
예제 #26
0
        public string GetBooingTime()
        {
            IWebElement textBoxElement = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("bookedTimeText")));

            return(textBoxElement.Text);
        }
예제 #27
0
        public void Submit()
        {
            IWebElement element = SeleniumBase.IsElementVisible(By.XPath(DataReader.GetLocator("submit")));

            element.Click();
        }
예제 #28
0
        public void SetDuration(string duration)
        {
            IWebElement bookDurationOption = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("bookDuration")));

            SeleniumBase.SelectOption(bookDurationOption, duration);
        }
예제 #29
0
        public string GetTicketNumber()
        {
            IWebElement textBoxElement = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("ticketNumberText")));

            return(textBoxElement.Text);
        }
예제 #30
0
        public void ClickSubmitRequestButton()
        {
            IWebElement submitRequestButtonElement = SeleniumBase.IsElementVisible(By.CssSelector(DataReader.GetLocator("submitRequestButton")));

            SeleniumBase.Click(submitRequestButtonElement, "click submit");
        }