我與測試(使用Selenium,TestNG的,JAVA)具有以下結構的類調用方法(以截圖):硒:如何從另一個類
public class loggedTest {
@Test
@Test
@AfterMethod
public void tearDown(messages screen, ITestResult result) {
screen.screenshot(result);
}
在AfterMethod我想製作一個屏幕畫面,如果測試失敗。 下面是這個方法在一個單獨的類進行截圖:
public class messages {
public void screenshot(ITestResult result) {
//driver = new ChromeDriver();
if (ITestResult.FAILURE == result.getStatus()) {
try {
TakesScreenshot ts = (TakesScreenshot) driver;
File source = ts.getScreenshotAs(OutputType.FILE);
Date date = new Date();
FileUtils.copyFile(source, new File("./Screenshots/" + result.getInstanceName() + "." + result.getName() + "." + date + ".png"));
System.out.println("Screenshot taken");
} catch (Exception e) {
System.out.println("Exception while taking screenshot " + e.getMessage());
}
}
}
}
我運行測試,但它不工作,如果這種方法在其他類。
但它正在如果我把它直接進入@AfterMethod註釋,像:
@AfterMethod
public void tearDown(ITestResult result) {
if (ITestResult.FAILURE == result.getStatus()) {
try {
TakesScreenshot ts = (TakesScreenshot) driver;
File source = ts.getScreenshotAs(OutputType.FILE);
Date date = new Date();
FileUtils.copyFile(source, new File("./Screenshots/" + result.getInstanceName() + "." + result.getName() + "." + date + ".png"));
System.out.println("Screenshot taken");
} catch (Exception e) {
System.out.println("Exception while taking screenshot " + e.getMessage());
}
}
}
如果這裏的問題? 謝謝
我能想到的唯一嫌疑犯,你'messages'類是否知道'driver'是什麼? – nullpointer
如果問題得到解決,請更新線程。 – nullpointer