I Ryg
I Ryg

Reputation: 1

nullpointerexception error on new installation

A fresh installation of eclipse has been created as a result of this error (I deleted all the files, however I'm guessing I missed a few)

This is the error:

java.lang.NullPointerException
at testing.testsrc.testcase1(testsrc.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Getting it on a brand new project too so believe this is away from any project specific configuration.

Can anyone assist?

EDIT: As an example this code will also return the same error:

package testing;
package TestsStudies;

import static org.junit.Assert.*;

import java.awt.Desktop.Action;
import java.awt.List;
import java.awt.RenderingHints.Key;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import org.junit.*;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;

import com.gargoylesoftware.htmlunit.javascript.host.Iterator;

public class TestingStd {

    WebDriver driver;
    WebElement sidearrow;
    WebElement sidemenu;
    WebDriverWait wait = new WebDriverWait(driver, 3);

    @Before
    public void setUp() throws InterruptedException { //Creating driver and connecting to url
        String baseURL = "url";
        System.setProperty("webdriver.gecko.driver", "/Users/user/Desktop/gecko/geckodriver.exe");
        driver = new FirefoxDriver();
        driver.manage().window().maximize();
        driver.get(baseURL);
        driver.findElement(By.id("isid")).sendKeys("username");
        WebElement Password = driver.findElement(By.id("password"));
        Password.sendKeys("password");
        Password.sendKeys(Keys.RETURN);     
        Thread.sleep(1500);
        driver.findElement(By.xpath("//img[@ src='/url/images/icons/logo_gif/Br.svg']")).click();;
        Thread.sleep(1500);
        driver.findElement(By.xpath("//*[@id=\"nosaveq\"]/div[3]/div[1]/span/img")).click();;
        Thread.sleep(1500);

    }

    @Test
    public void expDescriptionandSave() throws InterruptedException {

        sidemenu = driver.findElement(By.id("optionstd"));
        sidearrow = driver.findElement(By.id("slideButton_internal"));
        Actions builder = new Actions(driver);
        builder.moveToElement(sidemenu).perform();
        Thread.sleep(1500);
        builder.moveToElement(sidearrow).click().perform();
        driver.findElement(By.xpath("//*[@id=\"unusedFolderProtocols\"]/div[2]")).click();
        Thread.sleep(1500);
        driver.findElement(By.xpath("//*[@id=\"unusedFolderProtocolsContent\"]/div[1]/div[2]/div/img")).click(); //click BioELN
        Thread.sleep(1500);
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
        System.out.println(timeStamp + " experimentDescriptionandSave");
        driver.switchTo().frame("details");
        driver.findElement(By.cssSelector("#experiments > table > tbody > tr:nth-child(3) > td:nth-child(2) > textarea")).sendKeys(timeStamp);
        driver.findElement(By.xpath("//*[@title='create study']")).click();
        Thread.sleep(1500);
        String timeStampSecond = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
        System.out.println(timeStampSecond + " experimentDescriptionandSave");
        WebElement description = driver.findElement(By.name("DESCR"));
        description.clear();
        description.sendKeys(timeStampSecond);
        driver.findElement(By.xpath("//*[@id=\"exp\"]/table/tbody/tr[11]/td/label[1]")).click();
        Thread.sleep(1500);
        String descriptionText = driver.findElement(By.name("DESCR")).getText();
        assertTrue(descriptionText.contains(timeStampSecond));


    }

Upvotes: 0

Views: 846

Answers (2)

Anish Pillai
Anish Pillai

Reputation: 1023

As per your code, you are not initializing your driver variable. The basic code would be -

WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");

Also, based on what browser you want to use, you would need to download and then setup the corresponding driver as well. For Firefox, it's called GeckoDriver and for Chrome it's called ChromeDriver. Finally, you would need to provide the driver location in your script. So the code would look like this -

System.setProperty("webdriver.gecko.driver", "C:\\some_folder\\geckodriver.exe");
FirefoxDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");

If you are looking for detailed steps, then you can follow this article - Selenium WebDriver Setup

Upvotes: 1

R Dhaval
R Dhaval

Reputation: 546

In your code it seems that you haven't initialized your driver

So you might want to add two statements before you write driver.get(); statement.

    System.setProperty("webdriver.chrome.driver",System.getProperty("user.dir")+"\\lib\\chromedriver.exe");  
   //Or any other browser's driver that you have used.
    driver = new ChromeDriver(); 

Upvotes: 0

Related Questions