我可以在 pageObject 类中编写 WebDriver 的方法,然后在测试用例类中调用该方法吗?
public class setupMethods {
static WebDriver driver;
public static void setup(String browser) throws Exception{
//Check if parameter passed from TestNG is 'firefox'
if(browser.equalsIgnoreCase("firefox")){
//create firefox instance
System.setProperty("webdriver.gecko.driver", "U:\\path\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
}
//Check if parameter passed as 'chrome'
else if(browser.equalsIgnoreCase("chrome")){
System.setProperty("webdriver.chrome.driver", "U:\\selenium\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
}
//Check if parameter passed as 'Edge'
else if(browser.equalsIgnoreCase("IE")){
System.setProperty("webdriver.ie.driver","U:\\path\\IEDriverServer.exe");
InternetExplorerDriver driver;
driver = new InternetExplorerDriver();
}
else{
//If no browser passed throw exception
throw new Exception("Browser is not correct");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
}
这是我想在测试用例类中调用的方法,但是当我运行测试时,它会启动 Chrome(或任何其他浏览器),但随后返回 java.lang.NullPointerException
当涉及到驱动程序需要最大化窗口的代码行时 driver.manage().window().maximize();
最佳答案
您的方法中有局部变量driver
,这就是您收到此异常的原因。
删除方法主体中 driver
的类型声明。
关于java - 在 pageObject 类中设置 WebDriver,然后在测试用例中调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45088971/