async def test_published_article_visibility(session, users, data): """Публикация статьи и проверка ее видимости в списке """ with allure.step('Войти под обычным пользователем'): user = [x for x in users if not x['is_superuser']][0] superuser = [x for x in users if x['is_superuser']][0] main_page = MainPage(session) await main_page.load() await main_page.login_if_not(user['username'], user['password']) with allure.step('Перейти в раздел "Статьи"'): articles_page = await main_page.open_articles_page() with allure.step('Создать новую статью'): view_page = await articles_page.create_article(**data[0]) with allure.step( 'Войти под суперпользователем, открыть страницу созданной статьи'): new_data = await view_page.get_data() await view_page.login_if_not(superuser['username'], superuser['password']) await view_page.reload_page() with allure.step('Нажать на кнопку редактирования статьи'): new_data['status'] = '2' edit_page = await view_page.open_edit_page() with allure.step('Изменить статус на "Опубликован"'): await edit_page.edit_article(**new_data) with allure.step('Перейти в раздел "Статьи"'): await articles_page.reload_page() with allure.step('Проверить что опубликованная статья появилась в списке'): article_list = await articles_page.get_articles() target = [ x for x in article_list if x['id'] == new_data['id'] and x['title'] == new_data['title'] ] assert len(target) == 1
def test_check_sort_by_default_popularity(web_browser): """ Make sure that sort by popularity by default value works fine""" page = MainPage(web_browser) page.search.send_keys("кружка") page.search_run_button.click() assert page.products_titles.count() > 0
def test_orders_page(web_browser): """Make sure that we can open this page""" page = MainPage(web_browser) page.orders_page.click() assert 'https://market.yandex.ru/my/orders' in page.get_current_url() assert page.h1.get_text() == 'Мои заказы'
def test_wishlist_page(web_browser): """Make sure that we can open this page""" page = MainPage(web_browser) page.wishlist_page.click() assert 'https://market.yandex.ru/my/wishlist' in page.get_current_url() assert page.h1.get_text() == 'Избранное'
def setUp(self): browser = os.environ.get('BROWSER', os.environ['BROWSER']) self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=getattr( DesiredCapabilities, browser).copy()) self.driver.maximize_window() self.MESSAGE_TEXT = "testNumber1" self.BOT_1_LOGIN = "******" self.BOT_2_LOGIN = "******" self.PASSWORD = os.environ['PASSWORD'] self.CURRENT_DIALOG_URL = "" self.dialog_page = DialogPage(self.driver) self.message_page = MessagePage(self.driver) self.auth_page = AuthPage(self.driver) self.auth_page.sign_in(self.BOT_1_LOGIN, self.PASSWORD) self.main_page = MainPage(self.driver) self.main_page.open_messages() self.URL_OF_DIALOG_WITH_ME = "https://ok.ru/messages/575662066926" self.URL_OF_MESSAGES = "https://ok.ru/messages" self.NEED_TO_BLOCK_USER = False self.NEED_TO_CHANGE_ACC = False self.create_dialog() self.CURRENT_DIALOG_URL = self.driver.current_url
def test_footer_facebook(web_browser): """Make sure that we can open this page in footer""" page = MainPage(web_browser) page.facebook_footer.click() page.wait_page_loaded() assert 'https://www.facebook.com/yandex.market/' in page.get_current_url()
def test_pokupki_page(web_browser): """Make sure that page 'Покупки' works fine """ page = MainPage(web_browser) page.pokupki.click() page.wait_page_loaded(3) assert 'https://pokupki.market.yandex.ru/' in page.get_current_url()
async def test_superuser_edit_foreign_article(session, users, data): """Изменение чужой статьи суперпользователем """ with allure.step('Войти под обычным пользователем'): user = [x for x in users if not x['is_superuser']][0] superuser = [x for x in users if x['is_superuser']][0] main_page = MainPage(session) await main_page.load() await main_page.login_if_not(user['username'], user['password']) with allure.step('Перейти в раздел "Статьи"'): articles_page = await main_page.open_articles_page() with allure.step('Создать новую статью'): view_page = await articles_page.create_article(**data[0]) with allure.step( 'Войти под суперпользователем, открыть страницу созданной статьи'): new_data = await view_page.get_data() await view_page.login_if_not(superuser['username'], superuser['password']) await view_page.reload_page() new_data['title'] = data[1]['title'] new_data['description'] = data[1]['description'] new_data['text'] = data[1]['text'] with allure.step('Нажать на кнопку редактирования статьи'): edit_page = await view_page.open_edit_page() with allure.step('Изменить статью, ввести новые данные'): await edit_page.edit_article(**new_data) await view_page.reload_page() with allure.step( 'Проверить что данные измененной статьи соответствуют введенным'): article_page_data = await view_page.get_data() assert dict_common_fields_equal(article_page_data, new_data)
async def test_deferred_article_visibility(session, users, data): """Проверка видимости статьи со статусом "К отложенной публикации" в списке статей """ with allure.step('Войти под обычным пользователем'): user = [x for x in users if not x['is_superuser']][0] superuser = [x for x in users if x['is_superuser']][0] main_page = MainPage(session) await main_page.load() await main_page.login_if_not(user['username'], user['password']) with allure.step('Перейти в раздел "Статьи"'): articles_page = await main_page.open_articles_page() with allure.step('Создать новую статью'): view_page = await articles_page.create_article(**data[0]) new_data = await view_page.get_data() with allure.step('Войти под суперпользователем'): await view_page.login_if_not(superuser['username'], superuser['password']) with allure.step('Перейти на страницу просмотра созданной статьи'): await view_page.reload_page() with allure.step('Изменить статью, указать статус "В архиве"'): new_data['status'] = '5' edit_page = await view_page.open_edit_page() await edit_page.edit_article(**new_data) with allure.step('Перейти на страницу списка статей'): await articles_page.reload_page() with allure.step('Проверить что статья отсутствует в списке'): article_list = await articles_page.get_articles() target = [ x for x in article_list if x['id'] == new_data['id'] and x['title'] == new_data['title'] ] assert len(target) == 0
async def test_unlike_article(session, users, data): """Снятие лайка со статьи """ with allure.step('Войти под суперпользователем'): superuser = [x for x in users if x['is_superuser']][0] main_page = MainPage(session) await main_page.load() await main_page.login_if_not(superuser['username'], superuser['password']) with allure.step('Перейти в раздел "Статьи"'): articles_page = await main_page.open_articles_page() with allure.step( 'Найти статью с количеством лайков равным 0, или создать новую статью со статусом "Опубликован"' ): article_list = await articles_page.get_articles( _filter=lambda x: x['likes'] == 0) if len(article_list) == 0: data[0]['status'] = '2' view_page = await articles_page.create_article(**data[0]) else: view_page = await articles_page.load_article(article_list[0]['id']) with allure.step( 'Открыть статью, поставить лайк, нажав на кнопку "Одобряю!"'): if not await view_page.is_liked(): await view_page.like_article() with allure.step( 'Запомнить количество лайков, убрать лайк, нажав на кнопку "Сбросить одобрение"' ): old_like_count = await view_page.get_like_count() await view_page.unlike_article() with allure.step('Проверить что количество лайков уменьшилось на 1'): new_like_count = await view_page.get_like_count() assert new_like_count == old_like_count - 1
def test_life_streams_page(web_browser): """Make sure that page 'Трансляции' works fine """ page = MainPage(web_browser) page.live_streams.click() page.wait_page_loaded(3) assert 'https://market.yandex.ru/live' in page.get_current_url()
def test_save_api_key_to_the_file(self, browser): # Set up test case data EMAIL = '*****@*****.**' PASSWORD = '******' NOTICE = 'Signed in successfully.' with allure.step( 'Open browser and navigate to the OpenWeather main page'): main_page = MainPage(browser) main_page.load() with allure.step('Click "Sign In" link'): main_page.click_sign_in_link() with allure.step('Sign in with email and password'): sign_in_page = SignInPage(browser) sign_in_page.sign_in(EMAIL, PASSWORD) with allure.step('Verify that "Logout" link is visible'): home_page = HomePage(browser) home_page.verify_logout_link_is_visible() with allure.step('Verify that right notice is displayed'): assert home_page.get_notice_text() == NOTICE with allure.step('Click on "API Keys" tab'): home_page.click_api_keys_tab() with allure.step('Save API Key to the file'): api_keys_page = ApiKeysPage(browser) api_keys_page.save_api_key_to_the_file()
def test_scores_page(web_browser): """Make sure that we can open this page""" page = MainPage(web_browser) page.scores_page.click() web_browser.switch_to.window(web_browser.window_handles[-1]) page.wait_page_loaded() assert 'https://plus.yandex.ru/' in page.get_current_url()
def test_check_sort_by_date(web_browser): """ Make sure that sort by date works fine""" page = MainPage(web_browser) page.search.send_keys("кружка") page.search_run_button.click() page.sort_products_by_date.click() assert page.products_titles.count() > 0
def test_footer_instagram(web_browser): """Make sure that we can open this page in footer""" page = MainPage(web_browser) page.instagram_footer.click() web_browser.switch_to.window(web_browser.window_handles[-1]) page.wait_page_loaded() assert 'https://www.instagram.com/yandex.market/' in page.get_current_url()
def test_footer_about(web_browser): """Make sure that we can open this page in footer""" page = MainPage(web_browser) page.about_footer.click() web_browser.switch_to.window(web_browser.window_handles[-1]) page.wait_page_loaded() assert 'https://market.yandex.ru/about' in page.get_current_url()
def test_start_trade_page(web_browser): """Make sure that page 'Начать продавать на Маркете' works fine """ page = MainPage(web_browser) page.start_trade_page.click() page.wait_page_loaded(3) assert 'https://partner.market.yandex.ru/welcome/partners' in page.get_current_url( )
def test_bytovaya_tekhnika_page(web_browser): """Make sure that page 'Бытовая техника' works fine """ page = MainPage(web_browser) page.tehnica_bytovaia.click() page.wait_page_loaded(3) assert 'https://market.yandex.ru/catalog--bytovaia-tekhnika/54419' in page.get_current_url( ) assert page.h1.get_text() == 'Бытовая техника'
def test_products_drinks_page(web_browser): """Make sure that page 'Продукты питания' works fine """ page = MainPage(web_browser) page.products_drinks.click() page.wait_page_loaded(3) assert 'https://market.yandex.ru/catalog--produkty-napitki/54434' in page.get_current_url( ) assert page.h1.get_text() == 'Продукты питания'
def test_catalog_pokupki_page(web_browser): """Make sure that we can open this page from catalog""" page = MainPage(web_browser) page.catalog_btn.click() page.wait_page_loaded(3) page.pokupki_in_catalog.click() page.wait_page_loaded() assert 'https://pokupki.market.yandex.ru' in page.get_current_url()
def test_footer_return(web_browser): """Make sure that we can open this page in footer""" page = MainPage(web_browser) page.return_footer.click() web_browser.switch_to.window(web_browser.window_handles[-1]) page.wait_page_loaded() assert 'https://yandex.ru/support/market/return' in page.get_current_url() assert page.h1.get_text() == 'Возврат товара'
def test_footer_research_jobs(web_browser): """Make sure that we can open this page in footer""" page = MainPage(web_browser) page.research_footer.click() web_browser.switch_to.window(web_browser.window_handles[-1]) page.wait_page_loaded() assert 'https://yandex.ru/jobs/usability' in page.get_current_url() assert page.h2.get_text() == 'Исследования для пользователей'
def test_electronica_page(web_browser): """Make sure that page 'Электроника' works fine """ page = MainPage(web_browser) page.elektronika.click() page.wait_page_loaded(3) assert 'https://market.yandex.ru/catalog--elektronika/54440' in page.get_current_url( ) assert page.h1.get_text() == 'Электроника'
def test_footer_choice_goods(web_browser): """Make sure that we can open this page in footer""" page = MainPage(web_browser) page.choice_goods_footer.click() web_browser.switch_to.window(web_browser.window_handles[-1]) page.wait_page_loaded() assert 'https://yandex.ru/support/market/choice-goods' in page.get_current_url( )
def test_dacha_i_sad_page(web_browser): """Make sure that page 'Дача и сад' works fine """ page = MainPage(web_browser) page.dacha_i_sad.click() page.wait_page_loaded(3) assert 'https://market.yandex.ru/catalog--dacha-sad-i-ogorod/54495' in page.get_current_url( ) assert page.h1.get_text() == 'Дача и сад'
def test_detskie_products_page(web_browser): """Make sure that page 'Детские товары' works fine """ page = MainPage(web_browser) page.detskie_tovary.click() page.wait_page_loaded(3) assert 'https://market.yandex.ru/catalog--detskie-tovary/54421' in page.get_current_url( ) assert page.h1.get_text() == 'Детские товары'
def test_recieve_message(self): main_page = MainPage(self.driver) self.send_message = main_page.send_message(self.USEREMAIL, self.SUBJECT, self.TEXT) to, subject, text = main_page.check_recieve_message() self.assertEqual(self.USEREMAIL, to, "Useremail are not the same") self.assertEqual(self.SUBJECT, subject, "Subjects are not the same") self.assertEqual(self.TEXT, text, "Text are not the same")
def test_footer_delivery(web_browser): """Make sure that we can open this page in footer""" page = MainPage(web_browser) page.pay_delivery_footer.click() web_browser.switch_to.window(web_browser.window_handles[-1]) page.wait_page_loaded() assert 'https://pokupki.market.yandex.ru/my/order/conditions' in page.get_current_url( ) assert page.h1.get_text() == "Доставка Яндекса"
def test_check_search_with_incorrect_data(web_browser): """ Make sure that we got answer from website about our incorrect input""" page = MainPage(web_browser) # Enter incorrect data in search field page.search.send_keys("17adozzxss812") page.search_run_button.click() assert page.products_titles.count() < 1 assert page.search_incorrect.get_text( ) == 'По вашему запросу ничего не найдено'
def test_footer_troubleshooting(web_browser): """Make sure that we can open this page in footer""" page = MainPage(web_browser) page.feedback_footer.click() web_browser.switch_to.window(web_browser.window_handles[-1]) page.wait_page_loaded() assert 'https://yandex.ru/support/market/troubleshooting' in page.get_current_url( ) assert page.h1.get_text() == "Решение проблем"