Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Правильный вызов драйвера Python, selenium

python
selenium
webdriver
testng
Теги: #<Tag:0x00007f7b6191e0b8> #<Tag:0x00007f7b6191df50> #<Tag:0x00007f7b6191dde8> #<Tag:0x00007f7b6191dca8>

(Philip Kandyba) #1

Здравствуйте!

Нужно пару советов по python.

Пишут тест на регистрацию. В одном файле два тесовых класса. Один отдает код страницы. Другой заполняет форму.

Как правильно организовать вызов драйвера? Ошибка в том что то бы хоть что то вообще начало происходить нужно вызвать драйвер два раза. Ну он и открывает браузер два раза. А классы должны наследоваться. То есть, открыл браузер, на тебе - тест 1- ок, далее не закрывая браузер - заполнил форму.

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

Вот.

from core.settings import *


class RegestrationGetPage (unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome(chromedriver)

    def test_UserRegistrationGetPage(self):
        driver = self.driver
        driver.get(regestrationpage)
        regestrationpageStatus = requests.get(regestrationpage)
        print(regestrationpageStatus)

class CrateNewUser (unittest.TestCase):
    
    def setUp(self):
        self.driver = webdriver.Chrome(chromedriver)

    def test_CreateNewUser(self):
        driver = self.driver
        name = driver.find_element_by_class_name("name")
        name.send.keys("username")


if __name__ == '__main__':
    unittest.main()```

(Yaroslav Pernerovskyy) #2

Создайте объект драйвера в третьем классе и передавайте его куда надо.

Смотрите как у Баранцева в примерах это сделано: