Using Selenium with Java, I want to run my test on the Firefox browser on the headless mode in Jenkins where Jenkins is sitting on the Linux server. In Jenkins, I have defined browser parameters in Jenkins which allows me to run tests on either Chrome or Firefox. There is no issue with Chrome but Firefox option throwing code level error as below
Below code is from method name initialization()
public String browsername;
if (!SystemUtils.IS_OS_WINDOWS) {
browsername = System.getProperty("browser"); // Read browser choice from Jenkins
System.out.println("TESTS ARE RUNNING ON " + browsername.toUpperCase());
if (browsername.equals("Chrome")) {
ChromeOptions options = new ChromeOptions();
//options.addArguments("--headless");
options.setHeadless(true);
options.addArguments("window-size=1400,800");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
System.setProperty("webdriver.chrome.driver", BaseDir1 + "/drivers/chromedriver");
driver = new ChromeDriver(options);
} else if (browsername.equals("FIREFOX")) {
System.out.println("FIREFOX TO BE SET ON HEADLESS ON JENKINS");
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
options.addArguments("--no-sandbox");
//options.addArguments("--disable-dev-shm-usage");
System.setProperty("webdriver.gecko.driver", BaseDir1 +
"/drivers/geckodriver");
driver = new FirefoxDriver(options);
} else {
System.out.println("NO TESTS ARE RUNNING ON ANY BROWSERS IN JENKINS");
}
}
Here is the error log from Jenkins :
T E S T S
-------------------------------------------------------
Running TestSuite
TESTS ARE RUNNING ON FIREFOX
FIREFOX TO BE SET ON HEADLESS ON JENKINS
java.lang.NullPointerException
at ag_basepage.ag_base.initialization(ag_base.java:106)
at ag_page1.ag_pageTest.beforeTest(ag_pageTest.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
It seems Firefox driver property is not getting invoked...Can someone please help me here