我正在使用webdriver和eclipse与testNG。
我正在自动化网络以进行健全性检查。我在Web应用程序中有许多模块,如A,B,C等。 我为A创建了一个类,它也涵盖了所有子模块。同样,对于B和C,我有不同的类。我有一个A类的登录方法,我也需要B和C,因为所有这些类都是独立的,我必须为scrtach编写每个类的代码。
有没有办法在B和C中使用A中的Login()方法?
我的方法看起来像这样..
Class A
{
@Test(priority = 0, Description = "Login")
Public void Login()
{
//some code
}
感谢。
答案 0 :(得分:0)
这个问题与网络驱动程序没有多大关系 您应该做的是要在多个类上执行的操作是相同的,应该在包含常规操作的Base类中获取,并且此Base类可以扩展到您的其他子类,如A,B,C,并且所有将拥有您的基类功能。
在Base类中,您还可以在所有测试开始之前进行设置配置,并在测试完成后关闭您的驱动程序/流,即您的测试套件,以便您在每个测试套件中执行此操作
示例代码
class BaseTest{
WebDriver driver;
@BeforeSuite
public void setupTest(){
driver = new FirefoxDriver();
}
@AfterSuite
public void finishTest(){
driver.quit();
}
public void navigateToMenu(String menu){
WebElement element = driver.findElement(By.xpath("//XPATH_TO_MENU_WHERE=" + menu));
//Here menu is something will be replaced with navbar menu name, just an example of what you can do using BaseTest class
}
}
希望这可以让您了解应该采用的方法。