selenium.common.exceptions.WebDriverException: Сообщение: такого сеанса нет при выполнении тестовых примеров через модуль юнит-теста Python - PullRequest
0 голосов
/ 28 мая 2018
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class KenLogin(unittest.TestCase):

    def test_globe(self):

        global driver

        driver = webdriver.Chrome(executable_path='E:\Learning\chromedriver.exe')
        driver.maximize_window()

    def test_login(self):



        driver.implicitly_wait(2000)
        driver.get("http://qa.kenzen.com")
        username = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/div[1]/input")
        password = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/div[2]/input")

        username.send_keys("pardeepk@clovity.com")
        password.send_keys("Kenzen@123")

        button = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/button")

        button.send_keys(Keys.ENTER)
        print("Login Pass")


    def test_home(self):

        driver.implicitly_wait(2000)

        teamsummary = driver.find_element_by_id("teamsummary")

        teamsummary.click()
        print("Home Pass")

    def test_newteam(self):

        addteam = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div/div[1]/ul[2]/li/button")

        addteam.click()

        teamname = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div/div[2]/div/div[1]/input")#.send_keys(data)

        admin = driver.find_element_by_id("administrator")
        admin.send_keys("qa@kenzen.com,qa1@kenzen.com")
        addteambutton = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div/div[2]/div/div[6]/button")
        addteambutton.click()

        print("Team Added")

    def tearDown(self):
        driver.close()


if __name__ == "__main__":
    unittest.main()

Может кто-нибудь помочь мне, как решить эту проблему?

Я пытаюсь запустить более 1 функции и получаю сообщение об ошибке:

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

============================================================================

ОШИБКА: test_home (kenZen.KenLogin.KenLogin)

Трассировка (последний вызов был последним): файл "E: \ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py", строка 37, в файле test_home driver.implicitly_wait (2000), файл "C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 895, в неявно_принимании 'ms': float (time_to_wait) * 1000}) Файл "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 314, в файле execute self.error_handler.check_response (execute.ответ) Файл "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py", строка 242, в check_response поднять исключение_класса (сообщение,screen, stacktrace) selenium.common.exceptions.WebDriverException: сообщение: такой сессии нет (информация о драйвере: chromedriver = 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb), платформа = Windows NT 10.0.14393 x86_64)

====================================================================================

ОШИБКА: test_home (kenZen.KenLogin.KenLogin)

Трассировка (последний последний вызов): файл "E: \ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py", строка60, в tearDown driver.close () Файл "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 681,закрыть файл self.execute (Command.CLOSE) "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 314, в файле self.error_handler.check_response (response) выполните файл "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py", строка242, в check_response поднять исключение_класса (сообщение, экран, трассировка стека) selenium.common.exceptions.WebDriverException: Сообщение: такой сессии нет (Информация о драйвере: chromedriver = 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb), платформа = Windows NT 10.0.14393 x86_64)

======================================================================

ОШИБКА: test_login (kenZen.KenLogin.KenLogin)

Traceback (последний вызов был последним): файл "E: \ Learning \ Workplace \"kenZen \ kenZen \ KenLogin.py ", строка 21, в файле test_login driver.implicitly_wait (2000) файла" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver "\ remote \ webdriver.py ", строка 895, в неявном виде_wit 'ms': float (time_to_wait) * 1000}) Файл" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-пакеты \ selenium \ webdriver \ remote \ webdriver.py ", строка 314, в файле execute self.error_handler.check_response (response) в файле execute" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py ", строка 242, в check_responseповысить исключение_класса (сообщение, экран, трассировка стека) selenium.common.exceptions.WebDriverException: Сообщение: такой сеанс отсутствует (информация о драйвере: chromedriver = 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb), платформа = Windows NT 10.0.14393 x86_64)

======================================================================

ОШИБКА: test_login (kenZen.KenLogin.KenLogin)

Traceback (последний вызов был последним): файл "E: \ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py", строка 60, в tearDowndriver.close () Файл "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 681, в самом себе.Выполнить (Command.CLOSE) файл "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 314, в выполнить self.error_handler.check_response (response) Файл "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py", строка 242, в check_responseповысить исключение_класса (сообщение, экран, трассировка стека) selenium.common.exceptions.WebDriverException: сообщение: такой сеанс отсутствует (информация о драйвере: chromedriver = 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb), платформа = Windows NT 10.0.14393 x86_64)

======================================================================

ОШИБКА: test_newteam (kenZen.KenLogin.KenLogin)

Traceback (последний вызов последним): Файл "E: \ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py ", строка 46, в test_newteam addteam = driver.find_element_by_xpath (" / html / body / div [1] / div / div [2] / div / div / div [1] / ul[2] / li / button ") Файл" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 387,в find_element_by_xpath вернуть self.find_element (by = By.XPATH, value = xpath) Файл "C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \webdriver.py ", строка 957, в find_element 'value': value}) ['value'] Файл" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium\ webdriver \ remote \ webdriver.py ", строка 314, в исполняемом файле self.error_handler.check_response (ответ), файл" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \selenium \ webdriver \ remote \ errorhandler.py ", строка 242, в check_response поднять исключение_класса (сообщение, экран, трассировка стека) selenium.common.exceptions.WebDriverException: Сообщение: неттакой сеанс (Информация для водителя: chromedriver = 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb), платформа = Windows NT 10.0.14393 x86_64)

==========================================================================================

ОШИБКА: test_newteam (kenZen.KenLogin.KenLogin)

Трассировка (последний последний вызов): файл "E: \ Learning \ Workplace \ kenZen \ kenZen \ KenLogin".py ", строка 60, в tearDown driver.close () Файл" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 681, в закрытом файле self.execute (Command.CLOSE)" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 314, в исполняемом файле self.error_handler.check_response (response)" C: \ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py ", строка 242, в check_response поднять исключение_класса (сообщение, экран, отслеживание стека) selenium.common.exceptions.WebDriverException: Сообщение: такой сеанс отсутствует (информация о драйвере: chromedriver = 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb), платформа = Windows NT 10.0.14393 x86_64)

----------------------------------------------------------------------
Ran 4 tests in 7.928s

FAILED (errors=6)

1 Ответ

0 голосов
/ 28 мая 2018

При работе с Python и unittest вам необходимо позаботиться о следующем:

  • def setUp(self): setUp () является частью инициализации, и этот метод будет вызываться перед каждой тестовой функцией, которую вы собираетесь написать в этомкласс теста.
  • maximize_window(): Вместо использования maximize_window() используйте chrome.options класс, чтобы развернуть окно браузера.
  • implicitly_wait(): Неявное ожидание После установки неявное ожидание 1038 * устанавливается на срок службы экземпляра объекта WebDriver .
  • Всегда вызывайте driver.quit() в методе tearDown(){}, чтобы корректно закрыть и уничтожить WebDriver и Веб-клиент экземпляров.
  • Вот ваш собственный блок кода с незначительными изменениями, упомянутыми выше:

    import unittest
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    class KenLogin(unittest.TestCase):
    
        def setUp(self):
            global driver
            options = Options()
            options.add_argument("start-maximized")
            options.add_argument("disable-infobars")
            options.add_argument("--disable-extensions")
            cap = DesiredCapabilities().CHROME
            cap = options.to_capabilities()
            self.driver = webdriver.Chrome(desired_capabilities=cap, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    
        def test_login(self):
            self.driver.implicitly_wait(2000)
            self.driver.get("http://qa.kenzen.com")
            username = self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/div[1]/input")
            password = self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/div[2]/input")
            username.send_keys("pardeepk@clovity.com")
            password.send_keys("Kenzen@123")
            button = self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/button")
            button.send_keys(Keys.ENTER)
            print("Login Pass")
    
        def tearDown(self):
            self.driver.quit()
    
    
    if __name__ == "__main__":
        unittest.main()
    
  • Консольный вывод:

    Login Pass
    .
    ----------------------------------------------------------------------
    Ran 1 test in 13.731s
    
    OK
    

Asза ваш комментарий обновите, если хотитеsetup() функция вызывается только один раз, вы можете использовать setUpClass и tearDownClass методы класса, которые выполняютсядо и после тестов, когда класс выполняется.

  • Вот ваш собственный блок кода с незначительными изменениями, упомянутыми выше:

    import unittest
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    class KenLogin(unittest.TestCase):
    
        @classmethod
        def setUpClass(self):
            global driver
            options = Options()
            options.add_argument("start-maximized")
            options.add_argument("disable-infobars")
            options.add_argument("--disable-extensions")
            cap = DesiredCapabilities().CHROME
            cap = options.to_capabilities()
            self.driver = webdriver.Chrome(desired_capabilities=cap, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    
        def test_login(self):
            self.driver.implicitly_wait(2000)
            self.driver.get("http://qa.kenzen.com")
            username = self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/div[1]/input")
            password = self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/div[2]/input")
            username.send_keys("pardeepk@clovity.com")
            password.send_keys("Kenzen@123")
            button = self.driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/button")
            button.send_keys(Keys.ENTER)
            print("ENTER Key pressed")
    
        def test_print_success(self):
            print("Login Pass")
    
        @classmethod
        def tearDownClass(self):
            self.driver.quit()
    
    
    if __name__ == "__main__":
        unittest.main()
    
  • Консольный вывод:

    ENTER Key pressed
    .Login Pass
    .
    ----------------------------------------------------------------------
    Ran 2 tests in 18.187s
    
    OK
    

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...