【发布时间】:2019-03-19 07:49:05
【问题描述】:
我有一个通过从 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 在 Base 类中声明。
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();
}
}
【问题讨论】:
标签: selenium selenium-webdriver testng listener