我对Selenium很陌生,但具有良好的编码经验
我正致力于非常复杂的Web应用程序的自动化。 对于我的测试,我使用的是junit框架。
我不希望我的类扩展到巨大的大小,所以这就是我每页划分自动化的方式。对于前者我有主页。从中我可以进入设置,仪表板和许多其他页面。所以与homePage相关的所有修改/功能都保留在主页上。然后对于每个下一页我有另一个类,我正在创建webdriver并将其分配给上一页webdriver。因此,每个类都反映了我可以在该特定页面上实现的功能。
所以让我说我有第4级页面,我将有一个第4级的课程,在创建它将创建第3级页面,第3级将创建第2级第一级如此,在某些时候我会得到到第一个登录页面。基本上我有一个树,我的登录页面在它的头部。
它非常好用,直到junit,我都没有问题。 我喜欢在我的@After课程中关闭浏览器的想法,而且我有不同的页面类。我怎么能一起弯曲它,无论我在我的测试中创建和使用什么类的页面,我的后方法是关闭那个浏览器?
由于
答案 0 :(得分:2)
执行此操作的最佳方法是在类中使用After
方法来扩展所有测试。例如:
Class A extends T
Class B extends T
Class T {
WebDriver driver;
@After
public void tearDown() {
driver.quit();
}
}
现在,当A#testMethod1
完成后,它将从继承的tearDown()
方法执行@After
。
此外,就您的页面而言,请执行@CeilingGecko并仅使用1个webdriver实例。你可以这样做:
Class A extends T {
LoginPage loginPage = new LoginPage(driver);
@Test
public void testMethod1() {
loginPage.login("username", "password");
}
}
Class LoginPage {
WebDriver driver;
public LoginPage(WebDriver driver) {
this.driver = driver;
}
public void login(String user, String password) {
// driver.doStuff()
}
}
答案 1 :(得分:0)
查找Pagefactory。我有一个相关的帖子here,其中有一个例子。