Advertisement
Guest User

Untitled

a guest
Feb 13th, 2020
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.71 KB | None | 0 0
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.support.ui import WebDriverWait
  4. from selenium.webdriver.support import expected_conditions as EC
  5. from selenium.webdriver.support.ui import Select
  6. import pytest
  7. import json
  8. import time
  9. import requests
  10.  
  11. link = "https://*****.com/"
  12.  
  13. @pytest.fixture(scope='class')
  14. def browser():
  15.     driver = webdriver.Chrome()
  16.     driver.set_window_size(2000, 1200) #Изменяем размер окна до 2000*1200 пикселей
  17.     driver.get(link)
  18.     driver.implicitly_wait(25)
  19.     yield driver
  20.     print('teardown')
  21.     driver.quit()
  22.  
  23. @pytest.yield_fixture(scope='function')
  24. def clean_cart(self, browser):
  25.     yield
  26.     print('yield')
  27.     browser.get('https://*****.com/ru/cabinet/') #Возвращаемся в ЛК
  28.     #Открываем окно магазина
  29.     time.sleep(5.0) #ждём загрузки страницы
  30.     store = browser.find_element_by_css_selector('[data-test="widget__button-store"]')#ищем кнопку "магазин"
  31.     browser.execute_script("return arguments[0].scrollIntoView(true);", store) #Скроллим страницу до кнопки "магазин"
  32.     store.click()
  33.     browser.find_element_by_css_selector('[data-test="sidebar__button-REVIEW"]') #Проверяем, что магазин загружен (ищем раздел "Обзор")
  34.     try:
  35.         remove = browser.find_elements_by_css_selector('[data-test="cart__item-remove"]') #Ищем все иконки удалить в корзине
  36.         #Удаляем все товары из корзины      
  37.         for delete in remove:
  38.             delete.click() #Кликаем на каждую иокнку удалить
  39.             time.sleep(1.0)
  40.     except:
  41.         pass
  42.     finally:
  43.         browser.find_element_by_css_selector('[data-test="button-close"]').click() #Находим иконку "Закрыть" и кликаем на нее
  44.  
  45. class TestGlobal():
  46.     def enter_on_start(self, browser): #Логинимся
  47.         browser.get(link)
  48.         #Выполняем вход в аккаунт
  49.         browser.find_element_by_css_selector('[data-template="#login_box"]').click() #ищем кнопку "Войти" и кликаем на неё
  50.         browser.login = browser.find_element_by_id('login_mail')
  51.         browser.login.send_keys('@gmail.com')
  52.         browser.password = browser.find_element_by_id('login_pass')
  53.         browser.password.send_keys('*****')
  54.         browser.find_element_by_id('agreementSocial').click()
  55.         browser.find_element_by_id('login_submit').click()
  56.  
  57.     def enter_on_pro_plus(browser): #Логинимся в *****.com пользователь с ТП Про+
  58.         browser.get(link)
  59.         #Выполняем вход в аккаунт
  60.         browser.find_element_by_css_selector('[data-template="#login_box"]').click() #ищем кнопку "Войти"
  61.         browser.login = browser.find_element_by_id('login_mail')
  62.         browser.login.send_keys('@*****.com')
  63.         browser.password = browser.find_element_by_id('login_pass')
  64.         browser.password.send_keys('******')
  65.         browser.find_element_by_id('agreementSocial').click()
  66.         browser.find_element_by_id('login_submit').click()
  67.  
  68.     def open_store(self, browser): #Функция открывает магазин
  69.         time.sleep(5.0) #ждём загрузки страницы
  70.         store = browser.find_element_by_css_selector('[data-test="widget__button-store"]')#ищем кнопку "магазин"
  71.         browser.execute_script("return arguments[0].scrollIntoView(true);", browser.store) #Скроллим страницу до кнопки "магазин"
  72.         browser.store.click()
  73.         browser.find_element_by_css_selector('[data-test="sidebar__button-REVIEW"]') #Проверяем, что магазин загружен (ищем раздел "Обзор")
  74.  
  75.     def close_store(self, browser): #Функция будет закрывать магазин
  76.         browser.find_element_by_css_selector('[data-test="button-close"]').click() #Находим иконку "Закрыть" и кликаем на нее
  77.    
  78.     def delete_all(self, browser): #Функция отеняет оплату, удаляет все товары из корзины и закрывает магазин
  79.         browser.get('https://*****.com/ru/cabinet/') #Возвращаемся в ЛК
  80.         open_store() #Открываем окно магазина
  81.         browser.goods = browser.find_elements_by_css_selector('[data-test="cart__item-remove"]') #Ищем все иконки удалить в корзине
  82.         #Удаляем все товары из корзины      
  83.         for browser.good in browser.goods:
  84.             browser.good.click() #Кликаем на каждую иокнку удалить
  85.             time.sleep(1.0)
  86.         close_store()
  87.  
  88.  
  89.     def logout(self, browser): #Функция осуществляет выход из аккаунта
  90.         browser.avatar = browser.find_element_by_css_selector('[data-test="widget__button-user"]')
  91.         browser.execute_script("return arguments[0].scrollIntoView(true);", browser.avatar) #Скроллим страницу так, чтобы был виден аватар профиля
  92.         browser.avatar.click() #клик на аватар профиля
  93.         browser.escape = browser.find_element_by_xpath('//button[contains(text(), "Выход")]')
  94.         browser.execute_script("return arguments[0].scrollIntoView(true);", browser.escape) #Скроллим страницу так, чтобы была видна кнопка "Выйти"
  95.         time.sleep(2.0)
  96.         browser.escape.click() #Выходим из аккаунта
  97.         time.sleep(2.0)
  98.  
  99.     #@pytest.mark.skip    
  100.     def user_in_team_creator_team_general_test(self, browser):
  101.         enter_on_pro_plus() #логинимся с ТП Про+
  102.         browser.avatar = browser.find_element_by_css_selector('[data-test="widget__button-user"]')
  103.         browser.execute_script("return arguments[0].scrollIntoView(true);", browser.avatar) #Скроллим страницу так, чтобы был виден аватар профиля
  104.         browser.avatar.click() #клик на аватар профиля
  105.         time.sleep(10.0)
  106.         browser.enter_to_team = browser.find_element_by_xpath('//div[contains(text(), "тест")]') #Ищем команду "тест"
  107.         browser.enter_to_team.click() #клик на команду)
  108.         #browser.enter_to_team.click() #клик на команду
  109.         time.sleep(15.0)
  110.         open_store()
  111.         #Проверяем, что в меню есть вкладки Обзор, пакеты, Planoplan Cloud, тарифы
  112.         browser.review = browser.find_element_by_css_selector('[data-test="sidebar__button-REVIEW"]')
  113.         browser.packages = browser.find_element_by_css_selector('[data-test="sidebar__button-PACKAGES"]')
  114.         browser.cloud = browser.find_element_by_css_selector('[data-test="sidebar__button-CLOUD"]')
  115.         browser.pricing = browser.find_element_by_css_selector('[data-test="sidebar__button-PRICING"]')
  116.         #Проверяем, что в разделе "Обзор" отображается 1 баннер и 3 товара
  117.         browser.find_element_by_css_selector('[data-test="banner-0"]')
  118.         browser.find_element_by_css_selector('[data-test="card_overview-0"]')
  119.         browser.find_element_by_css_selector('[data-test="card_overview-1"]')
  120.         browser.find_element_by_css_selector('[data-test="card_overview-2"]')
  121.         #Проверяем, что раздел "Пакеты" не пустой
  122.         browser.packages.click() #Переходим в раздел "Пакеты"
  123.         browser.find_element_by_css_selector('[data-test="card_products-0"]')
  124.         browser.last = browser.find_element_by_css_selector('[data-test="card_products-21"]')
  125.         browser.execute_script("return arguments[0].scrollIntoView(true);", browser.last) #Скроллим страницу так, чтобы была видна карточка последнего товара
  126.         browser.find_element_by_css_selector('[alt="200 Улучшенных VR-панорам"]')
  127.         #Проверяем, что раздел "Planoplan cloud" не пустой
  128.         browser.cloud.click() #Переходим в раздел "Planoplan Cloud"
  129.         browser.find_element_by_css_selector('[data-test="cloud__button-0"]')
  130.         browser.find_element_by_css_selector('[data-test="cloud__button-1"]')
  131.         browser.find_element_by_css_selector('[data-test="cloud__button-2"]')
  132.         browser.find_element_by_css_selector('[data-test="cloud__button-3"]')
  133.         #Проверяем, что раздел "Тарифы" не пустой
  134.         browser.pricing.click() #Переходим в раздел "Тарифы"
  135.         browser.find_element_by_css_selector('[data-test="pricing-businessvr"] [data-test="pricing__current"]')  
  136.         browser.find_element_by_css_selector('[data-test="pricing-pro"] [data-test="pricing__button-upgrade"]')
  137.         browser.find_element_by_css_selector('[data-test="pricing-pro"] [data-test="pricing__button-more"]')
  138.         browser.find_element_by_css_selector('[data-test="pricing-proplus"] [data-test="pricing__button-upgrade"]')
  139.         browser.find_element_by_css_selector('[data-test="pricing-proplus"] [data-test="pricing__button-more"]')
  140.         browser.find_element_by_xpath('//li[contains(text(), "25%")]')
  141.         browser.find_element_by_xpath('//li[contains(text(), "50%")]')
  142.         browser.find_element_by_xpath('//li[contains(text(), "60%")]')
  143.         close_store()
  144.         logout()
  145.  
  146.     def test_go_to_tab_vidget(self, browser):
  147.         enter_on_start()
  148.         open_store()
  149.         browser.find_element_by_css_selector('[data-test="sidebar__button-WIDGET"]').click()
  150.         browser.find_element_by_css_selector('[src="https://files.*****.com/upload/projects/images/8d6.jpg"]')
  151.         browser.find_element_by_css_selector('[data-test="widget__go-over"]').click() #Ищем кнопку "Перейти" и кликаем на нее
  152.         browser.new_window = browser.window_handles[1] #Второй открытой вкладке (после клика на "Перейти" открывается новая вкладка) присваиваем имя "new_window"
  153.         browser.window = browser.window_handles[0]
  154.         browser.switch_to.window(browser.new_window) #Переходим на вторую вкладку
  155.         browser.find_element_by_class_name('header__Back-sc-1ws5ve8-2.ikSpXv')
  156.         browser.close()
  157.         browser.switch_to.window(browser.window)
  158.         close_store()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement