【发布时间】:2017-07-19 16:17:35
【问题描述】:
我是 Selenium 和 Java 的新手,我需要有关基类的帮助。我有我为驱动程序浏览器及其关闭设置方法的基础。问题是当我从 main 调用这些方法时,总是调用 web 驱动程序并且浏览器打开了很多次。如果我不想重复代码,最佳做法是什么 我想要一个好的项目结构。
主要:
public class Main extends TestBase {
public static void main(String[] args) throws InterruptedException, ClassNotFoundException, SQLException {
LoginTest LoginTest = new LoginTest();
LogofTest LogofTest = new LogofTest();
TestBase TestBase = new TestBase();
LoginTest.setUpBeforeTestMethod();
LoginTest.loginAsAdmin();
LogofTest.logofAsAdmin();
LoginTest.tearDownAfterTestClass();
}
}
测试库:
public class TestBase {
String a = System.setProperty("webdriver.chrome.driver",
"path");
WebDriver driver = new ChromeDriver();
protected WebDriver setUpBeforeTestClass() {
return driver;
}
protected void setUpBeforeTestMethod() {
driver.get("website");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void tearDownAfterTestClass() {
driver.close();
}}
登录测试:
public class LoginTest extends TestBase {
public void login() throws InterruptedException {
WebElement username = driver.findElement(By.name("username"));
username.sendKeys("username");
}
}
重点是不想再写了
WebDriver driver = new ChromeDriver();
driver.get("website"); System.setProperty("webdriver.chrome,"path");
对于函数或类中的每个测试。所以我想创建基类并继承它。
【问题讨论】:
-
由于这些是测试,而不是像使用
Main方法的程序一样运行它,您应该研究像junit这样的单元测试框架或任何其他看起来不错的框架。这些框架内置了设置和拆卸的概念,让您更容易实现。
标签: java google-chrome selenium selenium-webdriver automated-tests