我正在尝试编写Selenium Java.class文件来遍历多个Web浏览器.但是,我对Java OOP范围问题感到困惑.下面的'driver'变量只允许声明一次.在第一个Firefox声明中.其他switch语句块不喜欢重新声明'driver'.
我以为我可以在switch语句之上声明'driver',但是,我不知道要声明它的类,因为它需要是一个不同的类,具体取决于使用的浏览器.
这种问题通常是如何处理的?
谢谢...
switch (BrowserName){ case "Firefox": FirefoxDriver driver = new FirefoxDriver(); break; case "Chrome": System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32\\chromedriver.exe"); ChromeDriver driver = new ChromeDriver(); break; case "IE": System.setProperty("webdriver.ie.driver", "C:\\InternetExplorerDriver32\\IEDriverServer.exe"); InternetExplorerDriver driver = new InternetExplorerDriver(); break; case "Safari": SafariDriver driver = new SafariDriver(); break; default: System.out.println("Browser not recognized. Spawning default Firefox browser."); FirefoxDriver driver = new FirefoxDriver(); break; }
Elliott Fris.. 5
您缺少一个非常基本的选项,那就是使用所有各种驱动程序实现的底层接口.那就是WebDriver,你可以使用像这样的东西=
org.openqa.selenium.WebDriver driver = null; switch (BrowserName){ // As before, but don't redefine driver, just assign it case "Firefox": driver = new FirefoxDriver(); // for example. break; // .... }
然后你应该能够driver
照常使用.