software-testing-Salin-PIbd-33/test_profile_module.py

141 lines
5.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from common_fixtures import driver, login, open_profile
from selenium.webdriver.common.by import By
from my_constants import EMAIL, PASSWORD
import time
def switcher(driver, ind):
driver.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[1]/div[1]/button[1]/img").click()
element = driver.find_element(
By.XPATH, f"/html/body/div[2]/nav/a[{ind}]")
to_check1 = element.text
element.click()
time.sleep(2)
to_check2 = driver.find_element(
By.CLASS_NAME, 'overlay-header__info-text').get_attribute("textContent")
res = (to_check1 == to_check2)
driver.find_element(
By.CSS_SELECTOR, '#root > div > div.app-page > div.auth-popup > div > div.overlay-order.overlay-sidebar-enter-done > div.overlay-header > button.popup-close-icon > svg > path').click()
time.sleep(2)
return res
def get_password_fields(driver):
return [driver.find_element(By.NAME, 'old_password'),
driver.find_element(By.NAME, 'password'),
driver.find_element(By.NAME, 'repeat_password')]
def password_step(driver):
change_password = driver.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[2]/div/div[2]/div[2]/div/div/form/a[2]")
driver.execute_script(
"arguments[0].scrollIntoView(true);", change_password)
change_password.click()
time.sleep(1)
def password_back_step(driver):
driver.find_element(
By.CSS_SELECTOR, '#root > div > div.app-page > div.auth-popup > div > div.overlay-order.overlay-sidebar-enter-done > div.overlay-header > div.button-back > svg').click()
time.sleep(1)
def old_new_password(driver):
old_password, password, repeat_password = get_password_fields(driver)
old_password.send_keys(PASSWORD)
time.sleep(1)
password.send_keys(2 * PASSWORD + 'а')
time.sleep(1)
repeat_password.send_keys(2 * PASSWORD + 'а')
time.sleep(1)
assert driver.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[2]/div/div[2]/div[2]/div/form/div[3]/div[2]/div[2]").is_displayed()
time.sleep(1)
def wrong_repeat_password(driver):
old_password, password, repeat_password = get_password_fields(driver)
old_password.send_keys(2 * PASSWORD)
time.sleep(1)
password.send_keys(2 * PASSWORD)
time.sleep(1)
repeat_password.send_keys(2 * PASSWORD + 'а')
time.sleep(1)
assert driver.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[2]/div/div[2]/div[2]/div/form/div[4]/div[2]/div[2]").is_displayed()
time.sleep(1)
def wrong_old_password(driver):
old_password, password, repeat_password = get_password_fields(driver)
old_password.send_keys(2 * PASSWORD)
time.sleep(1)
password.send_keys(2 * PASSWORD + 'a')
time.sleep(1)
repeat_password.send_keys(2 * PASSWORD + 'a')
time.sleep(1)
driver.find_element(By.CLASS_NAME, 'login-form__button').click()
time.sleep(1)
assert driver.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[2]/div/div[2]/div[2]/div/form/div[2]/div[2]/div[2]").is_displayed()
time.sleep(1)
def test_navigation(open_profile):
login = open_profile
profile_icon_window = login.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[1]/div[1]/button[1]/img")
login = open_profile
menu_len = len(login.find_elements(By.CLASS_NAME, 'account-menu__item'))
profile_icon_window.click()
time.sleep(2)
res = True
for ind in range(menu_len - 1):
res = res and switcher(
login, ind + 1)
time.sleep(2)
login.switch_to.default_content()
assert res == True
def test_profile_changes(open_profile):
driver = open_profile
profile_icon_window = driver.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[1]/div[1]/button[1]/img")
time.sleep(2)
driver.find_element(By.XPATH, "/html/body/div[2]/nav/a[2]").click()
time.sleep(1)
fields = []
fields.append(driver.find_element(By.NAME, "first_name"))
fields.append(driver.find_element(By.NAME, "last_name"))
fields.append(driver.find_element(By.NAME, "middle_name"))
fields.append(driver.find_element(By.NAME, 'birthdate'))
fields.append(driver.find_element(By.NAME, 'phone'))
time.sleep(1)
for i in range(len(fields)):
fields[i].clear()
fields[i].send_keys('a')
assert driver.find_element(
By.XPATH, f"//*[@id='root']/div/div[1]/div[2]/div/div[2]/div[2]/div/div/form/div[{i + 1}]/div[3]").is_displayed()
driver.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[2]/div/div[2]/div[2]/div/div/form/a[1]").click()
time.sleep(1)
driver.find_element(
By.XPATH, "//*[@id='root']/div/div[1]/div[2]/div/div[2]/div[2]/div/form/div[3]/div[2]/input").send_keys('a')
assert driver.find_element(By.CLASS_NAME, 'disabled').is_enabled()
driver.find_element(
By.CSS_SELECTOR, '#root > div > div.app-page > div.auth-popup > div > div.overlay-order.overlay-sidebar-enter-done > div.overlay-header > div.button-back > svg').click()
time.sleep(1)
password_step(driver)
old_new_password(driver)
password_back_step(driver)
password_step(driver)
wrong_repeat_password(driver)
password_back_step(driver)
password_step(driver)
wrong_old_password(driver)
password_back_step(driver)
time.sleep(2)