我有一個代碼與許多類。
有它創建驅動程序類 -Java Selenium關閉瀏覽器後assertTrue
public class DriverDelegate {
private String baseURL = "someLink";
private WebDriver driver;
private WebDriverWait wait;
DriverDelegate(String url) {
System.setProperty("webdriver.chrome.driver", "${directory}");
driver = new ChromeDriver();
driver.get(baseURL + url);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
wait = new WebDriverWait(driver, 5);
}
public WebDriver getDriver() {
return driver;
}
我爲每個測試創建新的驅動程序。而且我的大部分線路都包含assertTrue喜歡這個 -
public class UserInterfaceTests extends BaseTest{
@Test
public void headerClicker() throws java.lang.Exception {
//Startup
DriverDelegate driverDelegate = new DriverDelegate("url");
WebDriver driver = driverDelegate.getDriver();
//Some random assertTrue
assertTrue("Test(HeaderClicker) - NoSuchElementException click", TestHelper.headerClicker(schedule, driver));
//I hope that it is not neccessary to put up all helper classes like TestHelper or BaseTest
現在,我從一個類調用啓動時啓動我的測試者 -
public class Startup{
@Test
public void HeaderClicker() throws Exception{ UserInterfaceTests UI = new UserInterfaceTests(); UI.headerClicker();}
我在這裏的問題是如何就給assertTrue後關閉瀏覽器失敗。像@AfterTest,@AfterSuite等東西無法正常工作,因爲其他方法不能使用與測試中使用的驅動程序相同的驅動程序。
任何想法?
你使用什麼測試框架? TestNG的?在'@test'中使用'@test'是非常糟糕的做法。 –
目前我正在使用testNG。如果你說這是不好的做法,那麼我應該用什麼來代替它,爲什麼它不好? – Syord
如果你想要有清晰和漂亮的代碼,那麼你應該使用xml配置文件testNG,也是https://github.com/SeleniumHQ/selenium/wiki/LoadableComponent 是個好主意。然後閱讀有關設計模式的內容。 '@Test'應該儘可能短。 –