From 834f8f064957ec8819f15a785bd2220b9dce4642 Mon Sep 17 00:00:00 2001 From: Oleja123 Date: Sun, 2 Mar 2025 22:21:57 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9D=D1=83=D0=B6=D0=BD=D0=BE=20=D0=B1=D1=83?= =?UTF-8?q?=D0=B4=D0=B5=D1=82=20=D0=BF=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20xpath?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 7 ++++ requirements.txt | 19 +++++++++++ test_information_module.py | 67 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 requirements.txt create mode 100644 test_information_module.py 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'