Это не сработает так, как вы пытаетесь. TestNG автоматически вызывает @AfterMethod()
после каждого @Test
аннотированного метода.
Вам нужно получить доступ к экземпляру драйвера в @AfterMethod
. Сохраните экземпляр драйвера в переменной контекста, откуда вы его инициируете, и затем получите к нему доступ.
См. Код ниже:
@BeforeMethod()
public static void setup(ITestContext context) throws Exception {
System.setProperty("webdriver.chrome.driver",
"/Users/narendra.rajput/bulkpowders/bulk-powders/resources/drivers/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("https://www.wego.com.my/hotels");
context.setAttribute("driver", driver);
}
@Test
public void test() {
System.out.print("ok");
}
@AfterMethod()
public static void screenShot(ITestContext context) {
WebDriver driver = (WebDriver) context.getAttribute("driver");
System.out.print(driver.getCurrentUrl());
}
Вот как у вас после метода будет
@AfterMethod()
public static void screenShot(ITestContext context) {
final String fileWithPath = "file_path";
WebDriver driver = (WebDriver) context.getAttribute("driver");
TakesScreenshot scrShot = ((TakesScreenshot) driver);
File SrcFile = scrShot.getScreenshotAs(OutputType.FILE);
File DestFile = new File(fileWithPath);
FileUtils.copyFile(SrcFile, DestFile);
}