首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java类变量解密

Java类变量解密
EN

Stack Overflow用户
提问于 2013-12-13 01:13:47
回答 2查看 630关注 0票数 1

我正在尝试编写一个Selenium Java.class文件,以在多个web浏览器中循环。但是,我被挂在Java的作用域问题上。下面的“驱动”变量只允许一次声明。在第一个Firefox声明中。另一个开关语句块不喜欢重新声明“驱动程序”。

我以为我可以在开关语句上面声明“驱动程序”,但是,我不知道该声明它是什么类,因为它需要是一个不同的类,这取决于所使用的浏览器。

这类问题通常是如何处理的?

谢谢..。

代码语言:javascript
复制
    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;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-13 01:19:05

您缺少了一个非常基本的选项,即使用所有不同驱动程序实现的底层接口。这就是WebDriver,您可以用它来处理如下=

代码语言:javascript
复制
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

票数 5
EN

Stack Overflow用户

发布于 2013-12-13 01:19:22

这些驱动程序类是否共享相同的超类或公共接口?如果是的话,你可以

代码语言:javascript
复制
BaseDriver driver = null; //before switch
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20557427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档