示例#1
0
        public void PopularMakeCheckColumnsTests()
        {
            homePage.PopularMake.Click();
            MakePage popularMake = new MakePage(Driver);

            popularMake.Model.Click();
            popularMake.Rank.Click();
            popularMake.Votes.Click();
            popularMake.Comments.Click();
            //Asertion
            //Check sorting
        }
示例#2
0
        public SharedStep(FeatureContext featureContext, ScenarioContext scenarioContext)
        {
            FeatureContext  = featureContext;
            ScenarioContext = scenarioContext;
            TestContext     = featureContext.FeatureContainer.Resolve <UITestContext>();
            ScenarioContext.Set(Driver, "Driver");

            if (Driver == null)
            {
                Driver = TestContext.Driver;
            }

            HomePage         = PageFactory.Create <HomePage>(Driver, TestContext.DriverTimeout);
            OverallPage      = PageFactory.Create <OverallPage>(Driver, TestContext.DriverTimeout);
            ModelDetailsPage = PageFactory.Create <ModelDetailsPage>(Driver, TestContext.DriverTimeout);
            ProfilePage      = PageFactory.Create <ProfilePage>(Driver, TestContext.DriverTimeout);
            RegisterPage     = PageFactory.Create <RegisterPage>(Driver, TestContext.DriverTimeout);
            MakePage         = PageFactory.Create <MakePage>(Driver, TestContext.DriverTimeout);
        }
示例#3
0
        public void Create_Credit_App_Firefox()
        {
            browser_.Navigate().GoToUrl(HOME_PAGE);
            //1st step is to select get started button
            try
            {
                HomePage homePage = new HomePage(browser_);
                homePage.GetStartedButton.Click();
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at Home page");
            }

            //2nd step is to randomly "Select Make"
            string newUsedText = "";

            try
            {
                MakePage makePage = new MakePage(rng_, browser_);

                IWebElement randomButton = makePage.SelectRandomNewUsedButton();
                randomButton.Click();
                newUsedText = randomButton.Text;
                Trace.WriteLine("New/Used: " + randomButton.Text);
                Trace.WriteLine("MakesCollection Count: " + makePage.MakesCollection.Count);
                IWebElement randomMakeType = makePage.SelectRandomMakeType();
                Trace.WriteLine("Make Type Selected: " + makePage.RandomMakeTypeTitle);
                randomMakeType.Click();
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at Select Make page");
            }

            try
            {
                //3rd step is to randomly select a car
                PageSelector modelPageSelector = new PageSelector(rng_, browser_);
                BasePage     nextPage          = modelPageSelector.GetNewOrUsedModelPage(newUsedText);

                if (nextPage is ModelPage)
                {
                    ModelPage modelPage = (ModelPage)nextPage;
                    Trace.WriteLine("ModelsCollection Count: " + modelPage.ModelsCollection.Count);
                    IWebElement randomModelType = modelPage.SelectRandomModelType();
                    Trace.WriteLine("Car Model Selected: " + modelPage.RandomModelTypeTitle);
                    randomModelType.Click();
                }
                else if (nextPage is UsedPage)
                {
                    UsedPage usedModelPage = (UsedPage)nextPage;
                    Trace.WriteLine("Used ModelsCollection Count: " + usedModelPage.UsedCollection.Count);
                    IWebElement randomUsedModelType = usedModelPage.SelectRandomUsedItem();
                    Trace.WriteLine("Used Car Model Selected: " + randomUsedModelType.Text);
                    randomUsedModelType.Click();
                }

                //4th step
                LocationPage location = new LocationPage(browser_);
                if (!location.IsLocationSpecified)
                {
                    Trace.WriteLine("Location Modal is Displayed");
                    location.UseMyLocationButton.Click();
                    //alternate way of inputting location information
                    //location.LocationInputField.SendKeys(ZIP_CODE);
                    //location.FindLocationButton.Click();
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at Model Selection page");
            }

            //5th step determine if the new page has a inventory list or a trim list
            bool wasTrimPageVisited = false;

            try
            {
                PageSelector pageSelector = new PageSelector(rng_, browser_);
                BasePage     newPage      = pageSelector.GetNewPage();

                if (newPage is TrimPage)
                {
                    TrimPage    trimPage = (TrimPage)newPage;
                    IWebElement trimCard = trimPage.SelectRandomTrimCard();
                    Trace.WriteLine("Trim selected: " + trimPage.TrimCardTitle.Text);
                    trimCard.Click();
                    wasTrimPageVisited = true;
                }
                else if (newPage is InventoryPage)
                {
                    InventoryPage inventoryPage = (InventoryPage)newPage;
                    IWebElement   inventoryCard = inventoryPage.SelectRandomInventoryCard();
                    Trace.WriteLine("Inventory selected: " + inventoryPage.InventoryCardTitle.Text);
                    string dealerName = inventoryPage.DealerName.Text;
                    inventoryCard.Click();

                    //Review Vehicle Page
                    ReviewVehiclePage reviewVehiclePage = new ReviewVehiclePage(browser_);
                    Trace.WriteLine("Dealership Name: " + reviewVehiclePage.DealerName.Text);
                    Assert.AreEqual(dealerName, reviewVehiclePage.DealerName.Text);
                    reviewVehiclePage.NextButton.Click();
                }
                else if (newPage is UsedPage)
                {
                    UsedPage    usedYearPage = new UsedPage(rng_, browser_);
                    IWebElement yearElement  = usedYearPage.SelectRandomUsedItem();
                    Trace.WriteLine("Used Year: " + yearElement.Text);
                    yearElement.Click();

                    UsedPage    usedTrimPage = new UsedPage(rng_, browser_);
                    IWebElement trimElement  = usedTrimPage.SelectRandomUsedItem();
                    Trace.WriteLine("Used Trim: " + trimElement.Text);
                    trimElement.Click();
                    wasTrimPageVisited = true;
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at PageSelector");
            }

            //6th step ~ no trade-in
            try
            {
                ReviewDetailsPage reviewDetailsPage = new ReviewDetailsPage(rng_, browser_);

                if (newUsedText.Equals("used", StringComparison.InvariantCultureIgnoreCase))
                {
                    reviewDetailsPage.UsedVehiclePriceInput.SendKeys(MIN_USED_VEHICLE_PRICE);
                    reviewDetailsPage.OdomoterReadingInput.SendKeys(USED_ODOMETER_VALUE);
                    IWebElement financeType = browser_.FindElement(By.ClassName("sectionTitleBar___1cVBK"));
                    Trace.WriteLine("used finance type: " + financeType.Text);
                }
                else //new car
                {
                    Trace.WriteLine("Finance Toggle Count: " + reviewDetailsPage.FinanceToggles.Count);
                    reviewDetailsPage.SelectRandomFinanceToggle().Click();
                    Trace.WriteLine("finance type: " + reviewDetailsPage.FinanceType.Text);
                }

                reviewDetailsPage.NoTradeInButton.Click();
                reviewDetailsPage.NextButton.Click();
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at Review Details page");
            }

            //7th step ~ pick a random dealership if TrimPage was visited instead of inventory page
            if (wasTrimPageVisited)
            {
                try
                {
                    DealershipPage dealershipPage = new DealershipPage(rng_, browser_);
                    dealershipPage.SelectRandomDealer();
                    Trace.WriteLine("Dealership name selected: " + dealershipPage.DealerName.Text);

                    if (!dealershipPage.SelectDealerButton.Displayed)
                    {
                        dealershipPage.ToggleDropdown.Click();
                    }

                    foreach (IWebElement button in dealershipPage.DealerButtons)
                    {
                        Trace.WriteLine("display: " + button.Displayed);
                    }

                    dealershipPage.SelectDealerButton.Click();
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(ex.Message);
                    Assert.Fail("Fail at Dealership Page");
                }
            }

            //8th step is to stop at "Search For Financing" Personal Information Page
            try
            {
                PersonalInformationPage personalInfoPage = new PersonalInformationPage(browser_);
                Assert.AreEqual("Personal Information", personalInfoPage.PersonalInformation.Text);
                Trace.WriteLine("Test Succeeded!");
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
                Trace.WriteLine("Test Failed!");
                Assert.Fail("Fail at Personal Information page");
            }
        }