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(): return [driver.find_element(By.NAME, 'old_password'), driver.find_element(By.NAME, 'password'), driver.find_element(By.NAME, 'repeat_password')] def old_new_password(driver): old_password, password, repeat_password = get_password_fields() old_password.send_keys(PASSWORD) password.send_keys(2 * PASSWORD + 'а') repeat_password.send_keys(2 * PASSWORD + 'а') assert not 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 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() 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() 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(2)