你好,我是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();
}
}
TestBase:
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();
}}
LoginTest:
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"); . 所以我想创建基类并从中继承 .
1 回答
示例
Selenium
使用 Page Object Model 使用JUnit
进行测试TestBase
LoginTest :
BasePage
LoginPage
我没有尝试编译这个,但这是基本的想法 . 我会让你填写细节 .