Trying to execute cross browser testing script usi

2019-08-27 22:14发布

问题:

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.

标签: java testng