Исключение при получении снимка экрана ID сессии не имеет значения. Использование WebDriver после вызова quit()?(TestNG)

Я получаю идентификатор сессии не имеет значения. Использование WebDriver после вызова quit()? исключение Когда режим запуска любого тестового примера устанавливается как НЕТ. Я использую TestNg Framework.

Если Runmode всех тестовых случаев - Да, тогда он работает нормально.

Я создаю один класс Java для набора и создаю несколько внутренних классов для отдельных тестовых случаев.

Ниже мой код.

    package com.smoke;

    import org.testng.SkipException;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Listeners;
    import org.testng.annotations.Test;
    import com.util.TestUtil;

    @Listeners(com.listener.ListenerTestNG.class)

    public class Testxls extends TestSuiteBase {    
        @BeforeMethod
        public void checkTestSkip() {    
        APP_LOGS.debug("Checking Runmode of Testxls Test Case");    
      if(!TestUtil.isTestCaseRunnable(smoke,this.getClass().getSimpleName())) {
      APP_LOGS.debug("Skipping Test Case" + this.getClass().getSimpleName() + " as runmode set to NO");
      throw new  SkipException("Skipping Test Case as runmode is set to NO");
  }
        }
        @BeforeTest
        public void testData() {
            try {
                objData=smoke.getTestCaseData("DataSheet", "Testxls");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(objData);

        }
        @Test()
        public void f() throws Exception {
            openBrowser();//Calling method to open browser
            Thread.sleep(5000);
            tearDown(); //calling method to quit browser

        }
    }

@Listeners(com.listener.ListenerTestNG.class)
class Testxls1 extends TestSuiteBase {

    @BeforeMethod
    void checkTestSkip()    {
        System.out.println(this.getClass().getSimpleName());
        APP_LOGS.debug("Checking Runmode of Testxls1 Test Case");
        if(!TestUtil.isTestCaseRunnable(smoke, this.getClass().getSimpleName())) {
            APP_LOGS.debug("Skipping Test Case" + this.getClass().getSimpleName() + " as runmode set to NO");
            throw new  SkipException("Skipping Test Case as runmode is set to NO");
        }
    }
    @BeforeTest
    void testData() {
        try {
            objData=suite_smoke.getTestCaseData("DataSheet", "Testxls1");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(objData);

    }
    @Test()
    void f() throws Exception {
        openBrowser();


    }
}

Пожалуйста, найдите скриншоты тестового примера и файла данных.

любая помощь приветствуется

Спасибо випин

1 ответ

Что реализовано в TestSuiteBase? наиболее вероятно, что вы используете один и тот же экземпляр драйвера во всех тестах, поэтому получите исключение при выходе из программы в одном тесте и все еще используете в другом тесте. проверьте, используете ли вы статический веб-драйвер.

лучший способ - создать метод, который будет возвращать экземпляр webdriver в соответствии с требованиями вашего браузера и получать его при запуске теста, передавать его всем методам в этом тесте и, наконец, выйти.

Другие вопросы по тегам