archetype-resources.src.test.java.testscripts.TestBase Maven / Gradle / Ivy
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package}.testscripts;
import io.testsmith.support.listeners.*;
import ${package}.utils.BrowserUtil;
import ${package}.utils.ScreenshotListener;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.events.EventFiringDecorator;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Listeners;
@Listeners(ScreenshotListener.class)
public abstract class TestBase {
private static final ThreadLocal driver = new ThreadLocal<>();
public WebDriver getDriver() {
return driver.get();
}
@BeforeClass
public void setup() {
final String browser = System.getProperty("browser", "chrome");
WebDriver originalDriver = BrowserUtil.createDriver(browser);
driver.set(new EventFiringDecorator(
new WebDriverLoggingListener(),
new SavePageSourceOnExceptionListener(originalDriver, "target/log/pagesources"),
new SaveScreenshotOnExceptionListener(originalDriver, "target/log/screenshots"),
new HighlightElementsListener()
).decorate(originalDriver));
}
@AfterClass
public void teardown() {
getDriver().quit();
}
}