diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3e99ede --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "python.testing.pytestArgs": [ + "." + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7cabd3b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,19 @@ +attrs==25.1.0 +certifi==2025.1.31 +h11==0.14.0 +idna==3.10 +iniconfig==2.0.0 +outcome==1.3.0.post0 +packaging==24.2 +pluggy==1.5.0 +PySocks==1.7.1 +pytest==8.3.5 +selenium==4.29.0 +sniffio==1.3.1 +sortedcontainers==2.4.0 +trio==0.29.0 +trio-websocket==0.12.2 +typing_extensions==4.12.2 +urllib3==2.3.0 +websocket-client==1.8.0 +wsproto==1.2.0 \ No newline at end of file diff --git a/test_information_module.py b/test_information_module.py new file mode 100644 index 0000000..25e3a6a --- /dev/null +++ b/test_information_module.py @@ -0,0 +1,67 @@ +import pytest +from selenium import webdriver +from selenium.webdriver.common.by import By +import time + + +EMAIL = 'jediforce82@gmail.com' +PASSWORD = 'aboba123' + +@pytest.mark.order(1) +@pytest.fixture() +def driver(): + driver = webdriver.Chrome() + driver.maximize_window() + driver.get('https://luna73.ru/') + time.sleep(2) + yield driver + driver.close() + + +@pytest.mark.order(2) +@pytest.fixture() +def login(driver): + login_button = driver.find_element(By.CLASS_NAME, 'widget-overlay') + driver.execute_script("arguments[0].scrollIntoView(true);", login_button) + login_button.click() + time.sleep(3) + the_iframe = driver.find_element(By.ID, "kw-iframe") + driver.switch_to.frame(the_iframe) + email_field = driver.find_element(By.NAME, 'email') + password_field = driver.find_element(By.NAME, 'password') + email_field.send_keys(EMAIL) + password_field.send_keys(PASSWORD) + enter_button = driver.find_element(By.CLASS_NAME, 'login-form__button') + enter_button.click() + time.sleep(2) + close_button = driver.find_element(By.CLASS_NAME, 'popup-close-icon') + close_button.click() + time.sleep(2) + driver.switch_to.default_content() + yield driver + + +def test_header_len(driver): + header = driver.find_elements(By.CLASS_NAME, 'menu__item') + assert len(header) > 0 + + +def test_header_navigation(driver): + header = driver.find_elements(By.CLASS_NAME, 'menu__item') + is_error = False + for menu_item in header: + driver.execute_script("arguments[0].scrollIntoView(true);", menu_item) + menu_item.click() + if not menu_item.is_enabled(): + is_error = True + break + assert is_error == False + + +def test_feedback(login): + feedback_button = login.find_element(By.CLASS_NAME, 'feedback') + login.execute_script("arguments[0].scrollIntoView(true);", feedback_button) + feedback_button.click() + time.sleep(2) + textarea = login.find_element(By.CLASS_NAME, 'textarea') + textarea.text = 'a'