Вполне возможно, потому что вы все делаете в __init__ методе.
Не нашел почему браузер закрывается, если делать так, как у вас
import time
from selenium import webdriver
class Test():
def __init__(self):
self.driver = webdriver.Chrome()
def test_case(self):
self.driver.get("https://stepik.org/lesson/25969/step/12")
time.sleep(5)
textarea = self.driver.find_element_by_css_selector(".textarea")
textarea.send_keys('get()')
time.sleep(1)
submit_button = self.driver.find_element_by_css_selector(".submit-submission")
submit_button.click()
time.sleep(3)
if __name__ == '__main__':
a = Test()
a.test_case()
Лучший вариант - не использовать sleep в коде и запускать тесты через unittest. После каждого теста - нужно перезапускать инстанс браузера.
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
wait_time = 20 # seconds
class TestStepik(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.wait = WebDriverWait(self.driver, wait_time)
def tearDown(self):
self.driver.quit()
def test_submit_button(self):
self.driver.get("https://stepik.org/lesson/25969/step/12")
textarea = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".textarea")))
textarea.send_keys('get()')
submit_button = self.driver.find_element_by_css_selector(".submit-submission")
submit_button.click()
self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".attempt-message_correct")))
if __name__ == '__main__':
unittest.main()