@Override方法不会覆盖教程中超类的方法

时间:2017-09-25 22:26:08

标签: java selenium override

我最近接受了一份新工作,他们要求我掌握Java。

我将使用Java和Selenium Webdriver自动化测试用例等。

为了进入java / Webdriver世界,我买了这个book,掌握了Selenium Webdriver。

在阅读本书时,我们将进入一个关于在parellel中运行测试的部分,并且我被要求创建两个新类。

  

DriverFactory.java和WebDriverThread.java

一旦我完成了所有更改并开始构建,并使用maven运行我的测试。在cmdline中使用以下命令。

  

mvn clean install

我收到以下错误

  

@Override方法不会覆盖超类的方法

我有一个谷歌,我不知道如何解决这个问题。这本书假设了一些我还没有的Java经验。

下面是我自创建以来的两个完整类。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;


public class WebDriverThread {

private WebDriver webDriver;

private final String operatingSystem =
        System.getProperty("os.name").toUpperCase();

private final String systemArchitecture =
        System.getProperty("os.arch");

public WebDriver getDriver() throws Exception {
    if (null == webDriver) {
        System.out.println(" ");
        System.out.println("Current Operation System: " + operatingSystem);
        System.out.println("Current Architecture: " + systemArchitecture);
        System.out.println("Current Browser Selection: FireFox");
        System.out.println(" ");
        webDriver = new FirefoxDriver(DesiredCapabilities.firefox());
    }

    return webDriver;
}

public void quitDriver() {
    if (null != webDriver) {
        webDriver.quit();
        webDriver = null;
    }
  }
}

这是第二个创建的类,

import org.openqa.selenium.WebDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeSuite;

public class DriverFactory {

private static ThreadLocal<WebDriverThread> driverThread;

@BeforeSuite
public static void instantiateDriverObject() {
    driverThread = new ThreadLocal<WebDriverThread>() {
        @Override
        protected WebDriverThread InitialValue() {
            WebDriverThread webDriverThread =
                    new WebDriverThread();
            return webDriverThread;

        }
    };
}

public static WebDriver getDriver() throws Exception {
    return driverThread.get().getDriver();
}

@AfterMethod
public static void quitDriver() throws Exception {
    driverThread.get().quitDriver();
   }
}

错误是@Override行。我已经读到这与未从它继承的类实现类有关吗?

然后我在实际测试中从这一行调用了这一切。

  

WebDriver driver = DriverFactory.getDriver();

我想在我爬行之前我已经试着走路了,但我想这本书会让我跳起来为新工作做准备。

任何帮助将不胜感激。

感谢。

0 个答案:

没有答案