In my TestNG framework, I want to execute @AfterTest
method to quit a Browser session by calling a method from customer Util class. I am getting an error as "Parameter 'Webdriver driver' is required by @Configuration on method TearDown but has not been marked @Optional or defined"
After reading that error, I declared a parameter to AfterTest Method like below.
@AfterTest
public void TearDown(WebDriver driver){
Util.tearDown(driver);
}
Here is a teardown method from Util package
public static void tearDown(WebDriver driver) {
driver.quit();
if (driver.toString().equals(null)) {
logger.info(driver.toString() + " is closed ");
}
}
Am I missing something? could you plz suggest how to fix this? thanks :)
Adding class file here
@Listeners({com.customerItestListener.CustomItestListener.class})
public class TC_CreateOnloadProposal {
WebDriver driver;
@Test
@Parameters({ "Url", "BemsID", "TransferType", "WrkTrnsfrTtle", "purpse" })
public void run(String Url, String BemsID, String TransferType, String WrkTrnsfrTtle, String purpse) {
driver = BrowserFactory.getInstance("firefox", Url).getDriver();
PageObjCreateExpressProposal pg_loc = PageFactory.initElements(driver, PageObjCreateExpressProposal.class);
pg_loc.checkForElement(driver, pg_loc.Txt_Login, "set", BemsID);
pg_loc.checkForElement(driver, pg_loc.Img_Logon, "click");
pg_loc.checkForElement(driver, pg_loc.Lnk_onload, "click");
pg_loc.checkForElement(driver, pg_loc.Img_CrtOrSelctPrpsl, "click");
}
@AfterTest
public void TearDown(){
driver.quit();
}
`