При запуске тестов локально, чтобы тесты проходили без перезапуска браузера, использовалась WebDriverFactory. и все правильно работало.
@Before
public void startBrowser() {
FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(true);
DesiredCapabilities capability = DesiredCapabilities.firefox();
capability.setCapability(FirefoxDriver.PROFILE, profile);
driver = WebDriverFactory.getDriver(capability);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
}
@AfterSuite
public void stopAllBrowsers() {
WebDriverFactory.dismissAll();
}
Теперь есть необходимость запускать тесты удаленно. И тут у меня возник вопрос, как правильно это устроить. При таких аннотациях Before и After каждый тест открывается в новом окне, причем после завершения теста окна не закрываются, в результате там целый каскад из открытых окон.
@Before
public void startBrowser() throws Exception {
FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(false);
DesiredCapabilities capability = DesiredCapabilities.firefox();
capability.setBrowserName("firefox");
capability.setCapability(FirefoxDriver.PROFILE, profile);
String hostURL = "http://170.702.257.588:4444/wd/hub";
driver = new RemoteWebDriver(new URL(hostURL), capability);
driver = WebDriverFactory.getDriver(hostURL, capability);
}
@AfterSuite
public void stopAllBrowsers() {
WebDriverFactory.dismissAll();
}
Selenium WebDriver, JUnit