mercredi 7 février 2018

How to avoid NullPointerException

If you make methods and fields static the same result. How to fix this exception?I commented out all sections with exceptions

Stackoverflow requires more text don't pay attention

Stackoverflow requires more text don't pay attention

DriverManager class

    public class DriverManager {
    private static WebDriver driver;
    public static void openBrowser() {
        System.setProperty("webdriver.chrome.driver", "C:/Users/User/Downloads/chromedriver.exe");
        driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.navigate().to("http://todomvc.com/examples/react/#/");
        try{
            Thread.sleep(1000);
        }
        catch(InterruptedException ie){
        }
    }

    public static WebDriver getDriver() {
        return driver;
    }

    public static void closeBrowser() {
        driver.close();
    }

    public static void cleanCookies() {
        driver.manage().deleteAllCookies(); //Here exception
    }
    }

BasePage class. All tests here

    public abstract class BasePage {
    protected WebDriver driver;

    public BasePage(){
        PageFactory.initElements(DriverManager.getDriver(), this);
        this.driver = DriverManager.getDriver();
    }
    }

All tests here

    public class TestNGPriority extends BaseTest {
    @Test(priority = 1)
    public void executeTest() {
        MainPage.getInstance().inputValues(); //Here exception
        Assert.assertEquals("firstItem", MainPage.getInstance().verifyStr);
    }
    @Test(priority = 2)
    public void executeTestTwo() {
        MainPage.getInstance().checkAllButton();
        Assert.assertEquals("completed", MainPage.getInstance().verifyCrossOut);
    }

    @Test(priority = 3)
    public void executeTestThree() {
        MainPage.getInstance().clickActiveButton();
        Assert.assertEquals("firstItem", MainPage.getInstance().verifyStr);
    }
    }

BaseTest

    public abstract class BaseTest {
    @BeforeClass
    public static void beforeTestRun () {
        DriverManager.openBrowser();
    }

    @AfterClass
    public static void afterTestSuite() {
        DriverManager.closeBrowser();
    }

    @AfterMethod
    public void cleanCookies() {
        DriverManager.cleanCookies(); //Here exception
    }
    }

MainPage class. All locators here

    public class MainPage extends BasePage {
    @FindBy(xpath = "//input[contains(@class,'new-todo')]")
    private WebElement inputForm;

    @FindBy(xpath = "//ul[contains(@data-reactid,'.0.1.1')]")
    private WebElement findItem;\

    @FindBy(xpath = "//input[contains(@class,'toggle-all')]")
    private WebElement checkAllItems;

    @FindBy(className = "//li[contains(@class,'completed')]")
    private WebElement crossOutItem;

    @FindBy(xpath = "//a[contains(@href,'#/active')]")
    private WebElement activeButton;

    public static MainPage getInstance() {
        return new MainPage(); //Here exception
    }

    public String verifyStr = findItem.getText(); //Here exception
    public String verifyCrossOut = crossOutItem.getText();

    public void inputValues() {
        inputForm.sendKeys("firstItem");
        inputForm.sendKeys(Keys.ENTER);
    }

    public void checkAllButton() {
        checkAllItems.click();
    }

    public void clickActiveButton() {
        activeButton.click();
    }
    }

Aucun commentaire:

Enregistrer un commentaire