Если вы используете привязки JavaScript с Jasmine Framework, вы можете попробовать использовать приведенный ниже код. Вы также можете обратиться к документам jasmin для получения более подробной информации здесь
beforeEach будет запускаться только один раз для всех тестов в spec.js
Запустить сеанс браузера в beforeEach
afterEach будет запускаться один раз для всех тестов внутри spec.js
Завершить сеанс браузера в AfterEach
describe('Before Each Spec', function () {
beforeEach(function () {
// Create new browser instance once for all spec tests
var chromeCapabilities = webdriver.Capabilities.chrome();
var chromeOptions = {
//'args': ['--headless']
};
chromeCapabilities.set('chromeOptions', chromeOptions);
const driver = new webdriver.Builder().withCapabilities(chromeCapabilities).build();
});
describe('Test Method 1', function() {
it('should have a title', function() {
// TO DO Code
});
});
describe('Test Method 2', function() {
it('should have a something to test', function() {
// TO DO Code
});
});
describe('After Each Spec', function () {
afterEach(function () {
// Destroy browser after all tests finished
browser.quit(); (or browser.driver.close();)
});
Если вы используете Java, то можете использовать аннотацию ниже, которая выполняется только один раз для полного тестирования XML или один раз для каждого класса тестирования, например, @BeforeSuite или @ BeforeClass
@BeforeSuite
public void setUP(){
startSeleniumSession();
}
public void startSeleniumSession(){
WebDriver driver = new ChromeDriver();
}
@Test
public void startTest2(){
driver.get("some url 1");
driver.findElement(By.id("someID")).click()
}
@Test
public void startTest2(){
// this test will run in same browser
driver.get("some url 2");
driver.findElement(By.id("someID")).click()
}
@AfterSuite
public void tearDown(){
driver.quit();
}