Java类变量声明

标签 java selenium scope

我正在尝试编写一个 Selenium Java.class 文件来遍历多个 Web 浏览器。但是,我对 Java OOP 作用域问题很感兴趣。下面的“驱动程序”变量只允许声明一次。在第一个 Firefox 声明中。其他 switch 语句 block 不喜欢重新声明“驱动程序”。

我想我可以在 switch 语句上方声明“驱动程序”,但是,我不知道将其声明为哪个类,因为它需要根据使用的浏览器而不同。

这种问题一般是怎么处理的?

谢谢...

    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;
    }

最佳答案

您缺少一个非常基本的选项,那就是使用所有各种驱动程序实现的底层接口(interface)。即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了。

关于Java类变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20557427/

相关文章:

java - 使用Texturepacker/LibGDX 制作动画 - 渲染错误

java - 如何在不同类中使用同一个对象及其值

python - 使用 Python Selenium 时数据/内容丢失

javascript - 谜题麻烦 - 试图保存初始棋盘

java - 插入另一个 IP 的命令被拒绝

java - JavaFX 中以编程方式生成的 TriangleMesh 的纹理坐标

python - Selenium 错误消息 "selenium.webdriver has no attribute execute script"

java - Selenium,点击元素,挂起

kotlin - Kotlin:在Timertask处理程序中丢失了 'this'上下文

javascript - 如果 JS 函数名称与外部函数的参数名称相同会​​发生什么?