代码中几乎没有问题。
第一:
在这里:
if(browser.equalsIgnoreCase("edge")){
//set path to msedgedriver.exe
System.setProperty("webdriver.edge.driver",localDir + "\\resources\\msedgedriver.exe");
System.out.println("Edge Driver started...");
edgeDriver.manage().window().maximize();
edgeDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
edgeDriver.get("test_url_here");
}
你打电话
edgeDriver.manage()
然而
edgeDriver
字段尚未初始化。
第二:
即使您使用
边缘驱动
driver
领域当你为chrome运行它时,你需要初始化
驾驶员
字段,以便您的测试工作正常。
当您为Edge运行代码时,您的代码将初始化
边缘驱动
离开你的
驾驶员
字段引用
null
.因为你的测试与
驾驶员
左侧引用的字段
无效的
NullPointerException
.
此代码应能更好地工作:
@BeforeMethod
@Parameters("browser")
public void beforeMethod(String browser) {
//Check if parameter passed from TestNG is 'Edge'
String localDir = System.getProperty("user.dir");
if(browser.equalsIgnoreCase("edge")){
//set path to msedgedriver.exe
System.setProperty("webdriver.edge.driver",localDir + "\\resources\\msedgedriver.exe");
System.out.println("Edge Driver started...");
driver = new EdgeDriver();
}
//Check if parameter passed from Testng is 'chrome'
else if(browser.equalsIgnoreCase("chrome")){
//set path to chromedriver.exe
System.setProperty("webdriver.chrome.driver",localDir + "\\resources\\chromedriver.exe");
System.out.println("Chrome Driver started...");
ChromeOptions options = new ChromeOptions();
//options.addArguments("--headless");
driver = new ChromeDriver(options);
}
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("test_url_here");
}