Я получаю java .lang.NullPointerException при stepDefinition - PullRequest
0 голосов
/ 06 апреля 2020

Я использую шаблон POM в огурце, и в пакете StepDefinition я создал один 'Hooks.java' для запуска браузера и 'CustomersModuleSteps.java' для добавления нового клиента, когда я выполняю файл бегуна. Я получаю сообщение об ошибке ниже. кто-то, пожалуйста, посмотрите на него и посоветуйте.

Error:```
************ open URL  ************
************ Enter Username & password  ************
************ clicking on login button  ************
************ Validating page Title  ************
************ clicking on CustomersMenu **********
    Given user clicks on customers menu     # com.nopCommerse.StepDefinition.CustomersModuleSteps.user_clicks_on_customers_menu() in file:/Users/rajasekhar/eclipse-workspace/nopCommerse/target/test-classes/
      java.lang.NullPointerException
    at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)
    at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
    at com.sun.proxy.$Proxy19.click(Unknown Source)
    at com.nopCommerse.Base.ElementExtension.ClickOnIt(ElementExtension.java:55)
    at com.nopCommerse.pageObjects.CustomersModuleObjects.clickCustomersMenu(CustomersModuleObjects.java:31)
    at com.nopCommerse.StepDefinition.CustomersModuleSteps.user_clicks_on_customers_menu(CustomersModuleSteps.java:32)
    at ✽.user clicks on customers menu(com.Features/CustomersModule.feature:4)

    When user clicks on customers menu item # com.nopCommerse.StepDefinition.CustomersModuleSteps.user_clicks_on_customers_menu_item() in file:/Users/rajasekhar/eclipse-workspace/nopCommerse/target/test-classes/
************ clicking on logout link  ************
************ closing the Browser  ************

Failed scenarios:
com.Features/CustomersModule.feature:3 # Add a new customer

1 Scenarios (1 failed)
2 Steps (1 failed, 1 skipped)
0m24.213s

Мой Базовый класс

public class TestBase extends ElementExtension {

    public WebDriver driver;

    public  Logger logger;
    public  Properties configProp;

    public CustomersModuleObjects custmod;
    public LoginPageObjects lp ;


}

Мои клиентыModuleSteps. java

package com.nopCommerse.StepDefinition;



import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import com.nopCommerse.Base.TestBase;
import com.nopCommerse.pageObjects.CustomersModuleObjects;

import io.cucumber.java.Before;
import io.cucumber.java.en.*;


public class CustomersModuleSteps extends TestBase {


    @Before
    public void setup()  {
        //object creation for logger
        logger = Logger.getLogger("EmployeeRestApi"); //added logger
        PropertyConfigurator.configure("Log4j.properties"); //added logger
        logger.setLevel(Level.DEBUG);
    }

    @Given("user clicks on customers menu")
    public void user_clicks_on_customers_menu()  {
        logger.info("************ clicking on CustomersMenu **********");
        custmod = new CustomersModuleObjects(driver);

        custmod.clickCustomersMenu();
    }


    @When("user clicks on customers menu item")
    public void user_clicks_on_customers_menu_item() {
       logger.info("************ clicking on customer Menu item **********");
        custmod.clickCustomerMenuItem();

    }


}

А это моя фабричная страница класса

package com.nopCommerse.pageObjects;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;

import com.nopCommerse.Base.TestBase;

public class CustomersModuleObjects extends TestBase {

    WebDriver driver;
    //constructor of CustomersModule class
    public CustomersModuleObjects(WebDriver ldriver) {
        driver = ldriver;
        PageFactory.initElements(ldriver,this);
    }

    //Identify webElements
    @FindBy(how = How.XPATH,using = "//a[@href='#']//span[contains(text(),'Customers')]")
    WebElement CustomersMenu;

    @FindBy(how = How.XPATH,using ="//a[@href='/Admin/Customer/List']//span[contains(text(),'Customers')]")
    WebElement customerMenuItem;


    //action methods for elements identified
    public void clickCustomersMenu()  {

        ClickOnIt(CustomersMenu);
    }
    public void clickCustomerMenuItem() {
        ClickOnIt(customerMenuItem);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...