0

Here i am trying to Initialize Homepage class objects but it is not working

Till yesterday, code was working but don't know what is the problem, today it's not working

  package StepDefnitions;

  import org.openqa.selenium.WebDriver;
  import org.openqa.selenium.support.PageFactory;

  import com.SHN.pages.AdviceAndPlanningPage;
  import com.SHN.pages.HomePage;

  import cucumber.api.java.en.Then;

  public class VerifyQuizSectionInAdviceAndPlanning {
public static WebDriver driver;


@Then("^click on Advice and Planning$")
public void ClickOnAdvice() throws InterruptedException{
    driver = Hooks.driver;

/* At this point code is not working */

HomePage homepage1 = PageFactory.initElements(driver, HomePage.class);
    homepage1.ClickOnAdviceAndPlanning();
    Thread.sleep(3000);
}

@Then("^verify Quiz Section in Advice and planning$")
public void VerifyingQuizSection(){
    AdviceAndPlanningPage advicePlanning = PageFactory.initElements(driver, AdviceAndPlanningPage.class);
    advicePlanning.ClickingQuizButton();

}

Homepage class as follows

   package com.SHN.pages;

   import java.util.ArrayList;
   import java.util.Arrays;
   import java.util.List;
   import java.util.Set;
   import java.util.concurrent.TimeUnit;

   import org.junit.Assert;
   import org.openqa.selenium.Keys;
   import org.openqa.selenium.WebDriver;
   import org.openqa.selenium.WebElement;
   import org.openqa.selenium.interactions.Actions;
   import org.openqa.selenium.support.FindAll;
   import org.openqa.selenium.support.FindBy;
   import org.openqa.selenium.support.How;
   import org.openqa.selenium.support.PageFactory;
   import org.openqa.selenium.support.ui.ExpectedConditions;
   import org.openqa.selenium.support.ui.WebDriverWait;







public class HomePage extends BaseClass {


public HomePage(WebDriver driver){
    super(driver);
}
public static String expectedCity = null;

@FindBy(how=How.CSS,using="[id*='divLearnAboutRight']")
WebElement LearnAboutTheRightCare;

@FindAll(@FindBy(how=How.CSS,using ="[class*='CareTypePadding']"))
List<WebElement> Caretypes;

@FindBy(how=How.CSS,using="[class*='CareTypePageHeading']")
WebElement Heading;

@FindBy(how=How.CSS,using="[class*='featuredHeader']")
WebElement FeaturedSeniorLiving;

@FindAll(@FindBy(how=How.CSS,using="[class*='featuredImage'] a"))
List<WebElement> FeaturedProperties;

@FindAll(@FindBy(how=How.CSS,using="[itemprop*='breadcrumb'] a"))
List<WebElement> LDPBreadcrumbs;

@FindBy(how=How.CSS,using="[id*='PopularSeniorLivingCities'] [class*='HeaderStylePopularCities']")
WebElement PopularSeniorLiving;

@FindAll(@FindBy(how=How.CSS,using ="[class*='slick-active']"))
List<WebElement> CitiesInsidePopularSenior;

@FindBy(how=How.CSS,using="[aria-label='Previous Arrow']")
WebElement LeftArrow;

@FindBy(how=How.CSS,using="[aria-label='Next Arrow']")
WebElement RightArrow;

@FindBy(how=How.XPATH,using="//*[@id='searchHomeLocation']")
WebElement SearchBoxCity;

@FindBy(how=How.XPATH,using="//*[@class='mui-pt-bd']")
WebElement citySuggestiveBox;

@FindBy(how=How.XPATH,using="//*[@class='mui-pt-bd']/ul/li/span")
WebElement FirstOptionInCitySuggestiveBox;

@FindBy(how=How.CSS,using="[class*='See-Homes']")
WebElement Search;

@FindBy(how=How.CSS,using="[id='errorMsg'] [class='SearchErrormsgPadding']")
WebElement ErrorMessage;

@FindBy(how=How.XPATH,using="//*[@id='SeniorLivingOption']")
WebElement AllSeniorLivingOptions; 

@FindBy(how=How.CSS,using="[class*='CareTypedropDownCont']")
WebElement CareTypesOptions;

@FindAll(@FindBy(how=How.CSS,using="[id*='chkCT']"))
List<WebElement> TypeofCareTypesAvailable;

@FindBy(how=How.CSS,using="[class*='advicePad80 Advicepad0']")
WebElement NewInAdvicePlanningSection;

@FindBy(how=How.CSS,using="[id*='senioradviceContent']")
WebElement NewInAdvicePlanningHeader;

@FindAll(@FindBy(how=How.CSS,using="[class*='seniorAdvicetext'] [title]"))
List<WebElement> NIAParticleTitle;

@FindBy(how=How.CSS,using="[class*='nav navbar-nav']")
WebElement Header;

@FindBy(how=How.CSS,using="[class*='nav navbar-nav'] [data-omtag*='header-menu:assisted-living']")
WebElement AssistedLivingHeaderLink;

@FindBy(how=How.CSS,using="[class*='nav navbar-nav'] [data-omtag*='header-menu:alzheimers-care']")
WebElement AlzheimerscareHeader;

@FindBy(how=How.CSS,using="[class*='nav navbar-nav'] [data-omtag*='header-menu:more-senior-living-options']")
WebElement moreSeniorLivingOptions;

@FindBy(how=How.CSS,using="[class*='nav navbar-nav'] [data-omtag*='header-menu:advice-planning']")
WebElement advicePalnningHeader;

@FindAll(@FindBy(how=How.CSS,using="[class*='nav navbar-nav col-lg-12 col-md-12 col-sm-12 col-xs-12 rmvpad'] a"))
List<WebElement> HeaderLinks;

@FindBy(how=How.XPATH,using="//*[@class='nav navbar-nav col-lg-12 col-md-12 col-sm-12 col-xs-12 rmvpad']/li[4]/a")
WebElement AdviceAndPlanning;




ArticlesPage articlespage = PageFactory.initElements(driver, ArticlesPage.class);
AssistedLivingPage assistedLiving = PageFactory.initElements(driver, AssistedLivingPage.class);
AlzheimersCarePage alzheimersCare = PageFactory.initElements(driver, AlzheimersCarePage.class);
MoreSeniorLivingOptionsPage moreSenior = PageFactory.initElements(driver, MoreSeniorLivingOptionsPage.class);
AdviceAndPlanningPage advicePlanning = PageFactory.initElements(driver, AdviceAndPlanningPage.class);


public void findingLearnSectionOnHP() throws InterruptedException{
    if((LearnAboutTheRightCare).isDisplayed()){
        System.out.println("Learn about section is displaying");
        List<WebElement> caretypes = Caretypes;
        if(caretypes.size()==6){
            for(int i=0;i<caretypes.size();i++){
                caretypes = Caretypes;
                String Name = caretypes.get(i).getText();
                caretypes.get(i).click();
                Thread.sleep(5000);
                String h1 = Heading.getText();
                if(Name.equals("55+ Living")){
                    if(h1.equals("55+ Communities")){
                        System.out.println("Navigated to Valid Page : "+h1);
                        driver.navigate().back();
                    }
                    else{
                        System.out.println("Navigated to InValid Page for care type: "+h1);
                        Assert.assertTrue(false);
                    }

                }
                else if(Name.equals("Low-Income Affordable")){
                    if(h1.equals("Affordable Low Income Senior Housing")){
                        System.out.println("Navigated to Valid Page : "+h1);
                        driver.navigate().back();
                    }
                    else{
                        System.out.println("Navigated to InValid Page for care type: "+h1);
                        Assert.assertTrue(false);
                    }
                }
                else if(Name.equals("Alzheimer's Care")){
                    if(h1.equals("Alzheimer’s Care (or Dementia Care)")){
                        System.out.println("Navigated to Valid Page : "+h1);
                        driver.navigate().back();
                    }
                    else{
                        System.out.println("Navigated to InValid Page for care type: "+h1);
                        Assert.assertTrue(false);
                    }
                }
                else{
                    if(h1.contains(Name)){
                        System.out.println("Navigated to Valid Page : "+h1);
                        driver.navigate().back();
                    }
                    else{
                        System.out.println("Navigated to InValid Page for care type: "+h1);
                        Assert.assertTrue(false);
                    }
                }
                driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
            }
        }
        else{
            System.out.println("Number of care types are not equal to 6");
            Assert.assertTrue(false);
        }
    }
    else{
        System.out.println("Learn about section is not displaying");
        Assert.assertTrue(false);           
    }               
}

public void findingFeaturedLivingSection(){
    if(FeaturedSeniorLiving.isDisplayed()){
        System.out.println("Featured Senior Living Communities section is displaying");
        List<WebElement> featuredProperties = FeaturedProperties;
        if(featuredProperties.size()==3){
            List <String> ExpectedTitles = Arrays.asList("Overture Fair Ridge","Overture Flower Mound","Overture Buckhead South");
            featuredProperties = FeaturedProperties;
            for(int i=0;i<featuredProperties.size();i++){
                String Community = featuredProperties.get(i).getText();
                String Result = SplittingString(Community);
                System.out.println("Result is "+Result);
                System.out.println("Successfully captured community Name \n"+Community);
                String[] arrofString1 =Community.split("\\s|\\,|\\n",2);
                if(arrofString1[1].contains(ExpectedTitles.get(i))){
                    System.out.println("Names are matching as expected");
                    Actions Act1 = new Actions(driver);
                    Act1.keyDown(Keys.SHIFT).click(featuredProperties.get(i)).keyUp(Keys.SHIFT).build().perform();
                    Set<String> w = driver.getWindowHandles();
                    String windows[] = new String[w.size()];
                    int k=0;
                    for (String window : w) {
                        windows[k] = window;
                        k++;
                    }
                    driver.switchTo().window(windows[1]);
                    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        
                    String Title = driver.getTitle();
                    System.out.println("Title of the community is "+Title) ;
                    List<WebElement> BreadCrumb = LDPBreadcrumbs;

                    if(Title.contains(Result)){
                        System.out.println(i+" "+Community+" Community name on LDP");
                    }
                    else if(BreadCrumb.get(1).getText().contains(Result)){
                        System.out.println(i+" Passed through breadcrumbs"+" "+Community+" Community name on LDP");
                    }
                    else{
                        System.out.println(i+" "+Community+" Community name on LDP");
                        Assert.assertTrue(false);
                    }
                    driver.close();
                    driver.switchTo().window(windows[0]);
                }

            }
        }
        else{
            System.out.println("Featured Senior Living Communities section is not there on HomePage");
            Assert.assertTrue(false);
        }
    }

}

public String SplittingString(String string){
    String[] arrofstring = string.split(",", 2);
    return arrofstring[0];
}

public void findingPopularSenior() throws InterruptedException{
    WebElement objectName;
    for(int k=0;k<2;k++){
        switch (k){
        case 0:
            objectName = LeftArrow;
            if(PopularSeniorLiving.isDisplayed()){
                System.out.println("Popular Senior Living Communities section is displaying");
                List<WebElement> DefaultcitiesInsidePopularSenior = CitiesInsidePopularSenior;
                List<String> list1 = new ArrayList<String>();
                for(int i=0; i<DefaultcitiesInsidePopularSenior.size(); i++){
                    list1.add(DefaultcitiesInsidePopularSenior.get(i).getText());                
                }
                objectName.click();
                System.out.println("Clicks on Left carousel in Popular senior Living section ");
                Thread.sleep(3000);
                List<WebElement> NextPopularSenior = CitiesInsidePopularSenior;
                List<String> list2 = new ArrayList<String>();
                for(int i=0; i<NextPopularSenior.size(); i++){
                    list2.add(NextPopularSenior.get(i).getText()); 

                }

                if((!(list1.get(0).equals(list2.get(0))))&&(list1.get(0).equals(list2.get(1)))){
                    System.out.println("Both Lists are not equal ,Hence Left carousel is working Fine");

                }

                else{
                    System.out.println("Both Lists are  equal ,Left carousel not working ,Code Error ************************");
                }
            }
            else{
                System.out.println("Popular Senior Living Communities section is not there on HomePage");
                Assert.assertTrue(false);
            }
            break;
        case 1:
            objectName = RightArrow;
            if(PopularSeniorLiving.isDisplayed()){
                System.out.println("Popular Senior Living Communities section is displaying");
                List<WebElement> DefaultcitiesInsidePopularSenior = CitiesInsidePopularSenior;
                List<String> list1 = new ArrayList<String>();
                for(int i=0; i<DefaultcitiesInsidePopularSenior.size(); i++){
                    list1.add(DefaultcitiesInsidePopularSenior.get(i).getText());                
                }
                objectName.click();
                System.out.println("Clicks on Right carousel in Popular senior Living section ");
                Thread.sleep(3000);
                List<WebElement> NextPopularSenior = CitiesInsidePopularSenior;
                List<String> list2 = new ArrayList<String>();
                for(int i=0; i<NextPopularSenior.size(); i++){
                    list2.add(NextPopularSenior.get(i).getText()); 

                }

                if((!(list1.get(4).equals(list2.get(4))))&&(list1.get(4).equals(list2.get(3)))){
                    System.out.println("Both Lists are not equal ,Hence Right carousel is working Fine");

                }

                else{
                    System.out.println("Both Lists are  equal ,Right carousel not working,Code Error ************************");
                }
            }
            else{
                System.out.println("Popular Senior Living Communities section is not there on HomePage");
                Assert.assertTrue(false);
            }
            break;
        }
    }


}

public String enteringCityName(String city){

    try{    
        String functionName = "FindingSearchTextBox";

        if(SearchBoxCity.isDisplayed()){
            SearchBoxCity.sendKeys(city);
            WebDriverWait wait = new WebDriverWait(driver, 15);
            wait.until(ExpectedConditions.visibilityOf(citySuggestiveBox));
            if(citySuggestiveBox.isDisplayed()){
                System.out.println("Able to see city Autosuggestion box");
                String FirstOptionInAutoSuggestion = FirstOptionInCitySuggestiveBox.getText();                  
                SearchBoxCity.sendKeys(Keys.TAB);
                expectedCity = SearchBoxCity.getAttribute("value");
                System.out.println("Text inside search is "+expectedCity);
                if(expectedCity.equals(FirstOptionInAutoSuggestion)){
                    System.out.println("Selected city is equal to  Expected");
                    /*Driver.globalValues.put(Thread.currentThread().getName() + "expectedCity", expectedCity);*/
                    return expectedCity;

                }
                else{
                    System.out.println("Selected city is not equal to  Expected");
                    Assert.assertTrue(false);
                }
                System.out.println("Able to see search text box "+ functionName);

            }
            else{
                System.out.println("Not Able to see city Autosuggestion box");
                System.out.println("Entered invalid city name which is not exist in the system "+city);
            }
        }

        else{
            System.out.println("Not able to see search text box "+ functionName);   
            Assert.assertTrue(false);
        }

    }
    catch(Exception e){
        System.out.println("Exception occurs"+e.getMessage());
    }
    return expectedCity;
}

public void clickingOnSearch() throws InterruptedException{
    Search.click(); 
    Thread.sleep(3000);

}

public void verifyingErrorMsgDisplaying(){
    try{
        if(ErrorMessage.isDisplayed()){
            System.out.println("ErrorMessage is Displaying");
            String errorMessage = ErrorMessage.getText();
            if(errorMessage.contains("?")&&!errorMessage.contains("'")){
                System.out.println("ErrorMessage Contains '?' Mark");
                Assert.assertTrue(false);
            }
            else if(errorMessage.contains("'")){
                System.out.println("ErrorMessageContains apostrophe");
            }
        }
        else{
            System.out.println("ErrorMessage is not Displaying");
            Assert.assertTrue(false);
        }
    }
    catch(Exception e){
        System.out.println("Error message is "+e.getMessage());
    }
}

public void verifyingAllSeniorLivingOptions() throws InterruptedException{
    if(AllSeniorLivingOptions.isDisplayed()){
        AllSeniorLivingOptions.click();
        Thread.sleep(3000);
        WebDriverWait wait = new WebDriverWait(driver, 15);
        wait.until(ExpectedConditions.visibilityOf(CareTypesOptions));
        if(CareTypesOptions.isDisplayed()){
            System.out.println("Able to see options under All SeniorLiving Options");
            List<WebElement> careTypeAvailable = TypeofCareTypesAvailable;
            for(int i=0;i<careTypeAvailable.size();i++){
                if(careTypeAvailable.get(i).isDisplayed()){
                    careTypeAvailable.get(i).click();
                    System.out.println("able to select checkboxes for "+careTypeAvailable.get(i).getText());
                }
                else{
                    System.out.println("Not able to select checkboxes for "+careTypeAvailable.get(i).getText());
                }
            }
        }
        else{
            System.out.println("caretypes Options not available under All senior Living options dropdown");
            Assert.assertTrue(false);
        }

    }
}

public void verifyNoErrorMessage(){
    try{
        if(!(ErrorMessage.isDisplayed())){
            System.out.println(" Error Message is not Displaying");

        }
        else{
            System.out.println("Error message is displaying ");
            Assert.assertTrue(false);
        }
    }
    catch(Exception e){
        System.out.println("Error message is "+e.getMessage());
    }
}

public void AdviceAndPlanning(){
    try{
        if(NewInAdvicePlanningSection.isDisplayed()){
            System.out.println("New in Advice and planning section displaying");
            if(NewInAdvicePlanningHeader.isDisplayed()){
                /*Adi_SHN_HP_NewInAdviceAndPlanning obj = new Adi_SHN_HP_NewInAdviceAndPlanning();
                obj.ScrollingTillElementVisible("NewInAdvicePlanningSection");*/
                System.out.println("New in Advice and Planning header displaying ");
                List<WebElement> articles = new ArrayList<WebElement>();
                articles = NIAParticleTitle;
                for(int i=0;i<articles.size();i++){
                    System.out.println("article title is "+articles.get(i).getText());
                    String Title = articles.get(i).getText();
                    Actions act =new Actions(driver);
                    act.keyDown(Keys.SHIFT).click(articles.get(i)).keyUp(Keys.SHIFT).build().perform(); 
                    Set<String> w = driver.getWindowHandles();
                    String windows[] = new String[w.size()];
                    int k = 0;
                    for (String window : w) {
                        windows[k] = window;
                        k++;
                    }
                    driver.switchTo().window(windows[1]);
                    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
                    String articlesPageTitle = articlespage.Title.getText();
                    System.out.println("Title is "+Title);
                    System.out.println("Title is "+articlesPageTitle);
                    if(Title.equalsIgnoreCase(articlesPageTitle)){
                        System.out.println("New advice articles navigating to valid pages ");
                    }
                    else{
                        System.out.println("New advice articles navigating to Invalid pages ");
                        Assert.assertTrue(false);
                    }
                    driver.close();
                    driver.switchTo().window(windows[0]);
                }
            }
            else{
                System.out.println("New in Advice section Header Name is NOT displaying ");
                Assert.assertTrue(false);
            }
        }
        else{
            System.out.println("New in Advice section is not displaying ");
            Assert.assertTrue(false);
        }
    }
    catch(Exception e){
        System.out.println("Error is "+e.getMessage());
    }

}

public void HeaderOnSHN(){
    try{
        if(Header.isDisplayed()){
            System.out.println("Displaying Header ");
            List<WebElement> LinksOnHeader = HeaderLinks;
            for(int i=0;i<LinksOnHeader.size();i++){
                String linkName = LinksOnHeader.get(i).getText();
                LinksOnHeader.get(i).click();
                Thread.sleep(3000);
                if(linkName.equals("Assisted Living")){
                    String Header =  assistedLiving.CareTypeHeader.getText();
                    if(linkName.equals(Header)){
                        System.out.println("Navigated to valid page for Header link  "+linkName);
                    }
                    else{
                        System.out.println("Navigated to Invalid Page for Header Link "+linkName);
                        Assert.assertTrue(false);
                    }
                }
                else if(linkName.equals("Alzheimer’s Care")){
                    String Header =  alzheimersCare.CareTypeHeader.getText();
                    if(Header.equals("Alzheimer’s Care (or Dementia Care)")){
                        System.out.println("Navigated to valid page for Header link  "+linkName);
                    }
                    else{
                        System.out.println("Navigated to Invalid Page for Header Link "+linkName);
                        Assert.assertTrue(false);
                    }
                }
                else if(linkName.equals("More Senior Living Options")){
                    String Header = moreSenior.MoreSeniorheader.getText();
                    if(Header.equals("Senior Housing and Care Types")){
                        System.out.println("Navigated to valid page for Header link  "+linkName);
                    }
                    else{
                        System.out.println("Navigated to Invalid Page for Header Link "+linkName);
                        Assert.assertTrue(false);
                    }
                }

                else if(linkName.equals("Advice & Planning")){
                    List<WebElement> BreadCrumblinks = advicePlanning.BreadCrumbs;
                    for(int u=0;u<BreadCrumblinks.size();u++){
                        System.out.println("BreadCrumb name is "+BreadCrumblinks.get(u).getText());
                        if(BreadCrumblinks.get(u).getText().equals("Advice & Planning")){
                            System.out.println("Navigated to valid page for Header link  "+linkName);
                            if(advicePlanning.ContentWidget.getText().equalsIgnoreCase("We're here to help.")){
                                System.out.println("Content Widget is displaying on Advice and Planning ");
                            }
                            break;
                        }
                        else if(u==BreadCrumblinks.size()){
                            System.out.println("Advice and Planning Header is not navigating to valid page");
                            Assert.assertTrue(false);

                        }
                    }                       
                }                   
                driver.navigate().back();
                Thread.sleep(3000);
            }
        }
        else{
            System.out.println("Not Displaying Header");
            Assert.assertTrue(false);
        }
    }
    catch(Exception e){
        System.out.println("Exception occurred. "+e.getMessage());
        Assert.assertTrue(false);
    }

}

public void ClickOnAdviceAndPlanning(){
    try{
        if(Header.isDisplayed()){
            System.out.println("Displaying Header ");
            if(AdviceAndPlanning.isDisplayed()){
                System.out.println("Advice and planning heading is displaying in Header");
                AdviceAndPlanning.click();

            }
            else{
                System.out.println("Advice and planning heading is displaying in Header");
                Assert.assertTrue(false);
            }
        }
        else{
            System.out.println("Not Displaying Header");
            Assert.assertTrue(false);
        }
    }
    catch(Exception e){
        System.out.println("Error Message is "+e.getMessage());
    }
}

}

Please let me know what is the problem in my code? why my code is not working at following point

HomePage homepage1 = PageFactory.initElements(driver, HomePage.class);
1
  • 3
    Add the error stack trace. Commented May 15, 2019 at 13:31

1 Answer 1

1

Instead of passing the 'HomePage.class' as the 2nd arg of the 'initElements' method:

Heading ##HomePage homepage1 = PageFactory.initElements(driver, HomePage.class)

Just pass 'this' as the 2nd parameter: HomePage homepage1 = PageFactory.initElements(driver, this)

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.