Trying to execute cross browser testing script using TestNG but giving error
FAILED CONFIGURATION: @BeforeTest Browser(null) : java.lang.NullPointerException"
Here is my code :
public class CrossBrowserTestingFile {
WebDriver driver;
@BeforeTest
@Parameters("browser")
public void Browser(@Optional String browser)throws Exception {
//Check if parameter passed from TestNG is 'firefox'
if(browser.equalsIgnoreCase("firefox")){
//create firefox instance
System.setProperty("webdriver.firefox.marionette", ".\\geckodriver.exe");
driver = new FirefoxDriver();
}
//Check if parameter passed as 'chrome'
else if(browser.equalsIgnoreCase("chrome")){
//set path to chromedriver.exe
System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe");
//create chrome instance
driver = new ChromeDriver();
}
else
{
//If no browser passed throw exception
throw new Exception("Browser is not correct");
}
}
@Test
public void testParameter() throws InterruptedException{
driver.get("http://demo.guru99.com/V4/");
//Find user name
WebElement userName = driver.findElement(By.name("uid"));
//Fill user name
userName.sendKeys("guru99");
//Find password
WebElement password = driver.findElement(By.name("password"));
//Fill password
password.sendKeys("guru99");
}
}
My XML FIle Code :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="2" parallel="tests" >
<test name="FirefoxTest">
<parameter name="browser" value="Firefox" />
<classes>
<class name="crossbrowsertesting.CrossBrowserTestingFile">
</class>
</classes>
</test>
<test name="ChromeTest">
<parameter name="browser" value="Chrome" />
<classes>
<class name="crossbrowsertesting.CrossBrowserTestingFile">
</class>
</classes>
</test>
<test name="EdgeTest">
<parameter name="browser" value="Edge" />
<classes>
<class name="crossbrowsertesting.CrossBrowserTestingFile">
</class>
</classes>
</test>
</suite>
Kindly help with this, TIA., This is repeated question with addition of my XML file code. I think xml code will help you guys to answer it.