У меня есть тестовый класс, который запускается путем получения параметров драйвера из файла TestNG.Вот поток рамки.
<parameter name="browser" value="chrome"/>
предоставляется в файле TestNG.
Используется классом logintest .
public class LoginLogoutTest extends Base{
@Test
@Parameters("browser")
public void initializeBrowser(String browser) throws IOException{
super.initializeBrowser(browser);
driver.get("https://www.google.com")
Assert.assertEquals(xpath_to_get_header, "Invalid_header_name");
}
initializeBrowser объявлен в Базовом классе.
public class Base {
public WebDriver driver;
public void initializeBrowser(String browser) throws IOException {
if (browser.equalsIgnoreCase("chrome")) {
System.setProperty("webdriver.chrome.driver", currentDir + "\\src\\main\\java\\resources\\chromedriver.exe");
driver = new ChromeDriver();
}
else { //do something }
Теперь, как я могу реализовать класс слушателя, чтобы он делал снимок экрана при сбое?Вот как я пытался, но я не знаю, как получить экземпляр драйвера из моего logintest класса.
public void onTestFailure(ITestResult result) {
File Src = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(Src, new File("C://test//" + result + "screen.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}