package ru.stqa.trainings.testng.tricky2.sample31;
import java.lang.reflect.Method;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.SkipException;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import ru.stqa.selenium.factory.WebDriverFactory;
import ru.stqa.trainings.testng.tricky2.sample31.IgnoreInBrowser.Browser;
public class SeleniumFixture {
protected WebDriver driver;
@BeforeClass
public void startDriver() {
driver = WebDriverFactory.getDriver(DesiredCapabilities.chrome());
}
@BeforeMethod
public void ignoreInBrowser(Method m) {
IgnoreInBrowser ignore = m.getAnnotation(IgnoreInBrowser.class);
if (ignore != null) {
String browser = ((RemoteWebDriver) driver).getCapabilities().getBrowserName();
Browser[] ignoredBrowsers = ignore.value();
for (Browser ignoredBrowser : ignoredBrowsers) {
if (ignoredBrowser.name().toLowerCase().equals(browser)) {
throw new SkipException("Ignored in browser " + browser);
}
}
}
}
@AfterClass(alwaysRun = true)
public void stopDriver() {
WebDriverFactory.dismissDriver(driver);
}
}