我最近接受了一份新工作,他们要求我掌握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();
我想在我爬行之前我已经试着走路了,但我想这本书会让我跳起来为新工作做准备。
任何帮助将不胜感激。
感谢。