Недопустимый сеанс при запуске нескольких тестов (Selenium)

#selenium #automation

#selenium #автоматизация

Вопрос:

При выполнении одного теста за другим второй всегда завершается с ошибкой недопустимого сеанса. Игнорируйте код, который еще не переработан. Может кто-нибудь помочь мне понять причину? я ставлю точку останова в первой строке во втором тесте, и она достигает ее, но завершается сбоем со следующим :

 invalid session id
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'Artjoms-MacBook-Air.local', ip: 'fe80:0:0:0:84a:618d:34b2:408c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.6', java.version: '15'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 86.0.4240.111, chrome: {chromedriverVersion: 86.0.4240.22 (398b0743353ff..., userDataDir: /var/folders/z6/46cwjtvx2fj...}, goog:chromeOptions: {debuggerAddress: localhost:51827}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: MAC, platformName: MAC, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}
Session ID: d39535e6570e233ffb589877403d2d7d
*** Element info: {Using=css selector, value=.cookie-accept-all}





  @@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyCardsServiceTest extends WebDriverSettings {

    private MyCardsService myCardsService;
    private HomePageService homePageService;
    private LoginService loginService;
    private MyAccountService myAccountService;
    private CookieModal cookieModal;


    @Before
    public void setUp() {
        super.setUp();
        cookieModal =  CookieModal.cookieModalInstance(driver);
        homePageService = HomePageService.homePageServiceInstance(driver);
        loginService = LoginService.loginServiceInstance(driver);
        myCardsService = MyCardsService.myCardsServiceInstance(driver);
        myAccountService = MyAccountService.myAccountServiceInstance(driver);
    }

    @Test
    public void shouldSuccessfullyAddCard() {
        cookieModal.acceptCookies();
        homePageService.clickOnMyAccountTab();
        loginService.login(loginCorrectData());
        homePageService.openMyAccountPage();
        myAccountService.myAccountPage().clickOnMyCardsTab();
        myCardsService.addCard(cardData());
        Assert.assertEquals(cardLastFourDigits, myCardsService.getMyCards().cardIndicator.getText());
    }
  

Вот мои настройки :

 public class WebDriverSettings {

public WebDriver driver;

@Before
public void setUp() {
    WebDriverManager.chromedriver().setup();
    driver = new ChromeDriver();
    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    loginToEnvironment();
}

@After
public void tearDown() {
    if (driver != null) {
        driver.manage().deleteAllCookies();
        driver.close();
    }
}
  

текущие зависимости :

     dependencies {
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver', version: '3.141.5'
    compile group: 'io.github.bonigarcia', name: 'webdrivermanager', version: '4.2.2'
    compileOnly 'org.projectlombok:lombok:1.18.16'
    annotationProcessor 'org.projectlombok:lombok:1.18.16'
    testCompileOnly 'org.projectlombok:lombok:1.18.16'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.16'
}
  

Комментарии:

1. Какую платформу модульного тестирования вы используете? И какая версия?

2. @AlexeyR. Junit 4.12

3. @AlexeyR. я добавил список зависимостей и попробовал использовать более новую версию junit, но проблема все та же

4. Я просто воспроизвел структуру, подобную вашей (с junit 4.12), и на моей стороне все работает нормально. Что я могу предложить, так это обновить ваш вопрос с минимальным воспроизводимым примером. Также установите точку останова driver = new ChromeDriver(); , запустите в debug и убедитесь, что она вызывается для обоих тестов.