def test_delete_product(browser): LoginPage(browser).login() AdminPage(browser).go_to_product_page()\ .new_product_choice(3) AdminPage(browser).delete_product()\ .alert_accept() ProductsAddAndEditPage(browser).should_be_success_alert()
class TestAdmin: def setup_method(self): self.admin_page = AdminPage() def test_add_member(self): """测试管理员页面添加成员功能""" # 1. save_and_add todo 这块的 assert 按理说应该通过弹窗 text 判断,但比较难确定是弹窗还是其他的js动态效果 # add_member_page = self.admin_page.add_member().save_and_add('bill3', 'bill3', '12345678114', '2') # 2. save add_member_page = self.admin_page.add_member().save( 'bill4', 'bill4', '12345678115', '2') assert 'bill4' in add_member_page.member_info # 3. cancel # self.admin_page.add_member().cancel() def test_import_contact(self): """测试管理员页面导入通讯录功能""" contact_page = self.admin_page.import_contact().upload_contact_file( r'C:\Users\MUYI\Desktop\test_wework\通讯录批量导入模板.xlsx') assert '张三3' in contact_page.member_info # todo 这块应当读xlsx文件比对数据 def test_send_message(self): """测试管理员页面消息群发功能""" msg_list = self.admin_page.send_message().send(*msg_info) assert '快递' in msg_list.messages def teardown_method(self): time.sleep(2) self.admin_page.quit()
def test_rebuild_category(login_page): login_page.login('user', 'bitnami1') admin_page = AdminPage(driver=login_page.driver) admin_page.go_to_categories() categories_page = CategoriesPage(driver=login_page.driver) categories_page.click_rebuild_button() assert categories_page.success_alert_element
def setup_method(self, method): super().setup_method(method) lp = LoginPage(self.driver) lp.login(page=self.login_url_http, **ADMIN_USER) ap = AdminPage(self.driver, self.ts) ap.open(self.base_url)
def __init__(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.home_page = HomePage(self.driver) self.create_account_page = CreateAccountPage(self.driver) self.admin_panel_login_page = AdminPanelLoginPage(self.driver) self.admin_page = AdminPage(self.driver) self.customer_list_page = CustomerListPage(self.driver) self.countries_page = CountriesPage(self.driver) self.geo_zones_page = GeoZonesPage(self.driver) self.catalog_page = CatalogPage(self.driver)
def test_cancel_delete_product(login_page): login_page.login('user', 'bitnami1') admin_page = AdminPage(driver=login_page.driver) admin_page.go_to_products() products_page = ProductsPage(driver=login_page.driver) products_page.click_add_product_button() products_page.set_new_product_required_fields("iphone", "phones", "11pro") products_page.click_submit_button() assert products_page.success_alert_element products_page.check_product_in_table('iphone') products_page.delete_product_from_table('iphone') products_page.check_product_is_not_in_table('iphone')
def test_add_new_category(login_page): login_page.login('user', 'bitnami1') admin_page = AdminPage(driver=login_page.driver) admin_page.go_to_categories() categories_page = CategoriesPage(driver=login_page.driver) categories_page.click_add_category_button() categories_page.set_category_required_fields("1test category", "tag") categories_page.click_submit_button() assert categories_page.success_alert_element categories_page.check_category_in_table('1test category') categories_page.delete_category_from_table('1test category') categories_page.accept_delete_category_alert() categories_page.check_category_is_not_in_table('1test category')
def test_admin_shop_count(self): """ Tests that admin user has access to admin API and that admin page shows correct number of shops """ # Check that logged admin user has access to admin api lp = LoginPage(self.driver) lp.login(user='******', password='******', page=self.login_url_http) status_code, content = self.api_get_shop_counts() assert status_code == 200 assert content == {'etsyShops': 1, 'userShops': 1} # Check that admin page displays the shop count value correctly ap = AdminPage(self.driver, self.ts) ap.open(self.base_url) assert ap.etsy_shop_count() == '1'
def test_edit_product(browser): LoginPage(browser).login() AdminPage(browser)\ .go_to_product_page()\ .edit_product(2) ProductsAddAndEditPage(browser)\ .general_info("", "Ноутбук", "", "", "", "")\ .option_required_no_select()\ .save()\ .should_be_success_alert()
def test_modify_product(login_page): ProductQueries().add_product("iphone", "11pro") login_page.login('user', 'bitnami1') admin_page = AdminPage(driver=login_page.driver) admin_page.go_to_products() products_page = ProductsPage(driver=login_page.driver) # products_page.click_add_product_button() # products_page.set_new_product_required_fields("iphone", "phones", "11pro") # products_page.click_submit_button() # assert products_page.success_alert_element products_page.click_edit_button('iphone') products_page.set_new_product_required_fields("samsung", "phones", "s20") products_page.click_submit_button() assert products_page.success_alert_element assert ProductQueries().get_product("samsung") ProductQueries().check_product_deleted("iphone", "11pro") products_page.check_product_in_table('samsung') products_page.check_product_is_not_in_table('iphone') products_page.delete_product_from_table('samsung') products_page.check_product_is_not_in_table('samsung')
def __init__(self, browser): self.logger = logging.getLogger("PAGE NAME") self.tests_logger = logging.getLogger("TEST NAME") self.common = CommonItems(self.logger, browser) self.admin = AdminPage(self.logger, browser) self.catalogue = CataloguePage(self.logger, browser, self.common) self.admin_products = AdminProductsPage(self.logger, browser, self.admin, self.common) self.main = MainPage(self.logger, browser, self.common) self.product = ProductPage(self.logger, browser) self.search_result = SearchResultPage(self.logger, browser, self.common)
def test_add_product(browser): LoginPage(browser).login() AdminPage(browser)\ .go_to_product_page()\ .add_product() ProductsAddAndEditPage(browser)\ .general_info("HA_РОБОфон 2000", "Лучший в мире смартфон", "Робофон 2000", "111", "A", "Notebook")\ .data_info("2000-ъы")\ .get_monitor_category_link()\ .option_add_delivery_date()\ .save()\ .should_be_success_alert()
def test_create_new_user(browser): start_page = StartPage(browser) start_page.open_base_page() start_page.start_page_is_open() start_page.open_login_page() login_page = LoginPage(browser) login_page.login_page_is_open() login_page.login('admin', 'password') admin_page = AdminPage(browser) admin_page.admin_page_is_open() admin_page.create_new_user(username, userpass) db = DataBase() db.check_user_in_db(username) admin_page.log_out() login_page.login_page_is_open() login_page.login(username, userpass) admin_page.admin_page_is_open() db.delete_user(username)
def test_login(browser): start_page = StartPage(browser) start_page.open_base_page() start_page.start_page_is_open() first = start_page.get_first_post_src() start_page.open_login_page() login_page = LoginPage(browser) login_page.login_page_is_open() login_page.login(su_name, su_pass) admin_page = AdminPage(browser) admin_page.admin_page_is_open() admin_page.delete_post() admin_page.open_start_page() second = start_page.get_first_post_src() assert first != second, 'error second img equal first img'
def setup_method(self): self.admin_page = AdminPage()
def test_create_new_user(browser, get_data_for_admin_login, get_data_for_add_user, db_connect): with allure.step("Open app and log in as admin"): admin_page = AdminPage(browser) admin_page.open_admin_login_page() admin_username, admin_passwd = get_data_for_admin_login admin_page.login(admin_username, admin_passwd) with allure.step("Create user"): admin_user_page = UsersAdminPage(browser) admin_user_page.click_on_button_from_left_admin_page_block("Users") new_username, new_passwd = get_data_for_add_user admin_user_page.add_new_user(new_username, new_passwd) admin_user_page.set_staff_status_to_user() with allure.step("Check is user in db"): connect = db_connect db = DataBase(connect) db.is_user_in_auth_table(new_username) with allure.step("Log in as new user"): admin_page.click_on_button_from_top_toolbar("Log out") admin_page.click_on_button_from_top_toolbar("Django administration") admin_page.login(new_username, new_passwd) admin_page.is_login_successful(new_username)
def test_admin_shop_search(self): """ Tests admin function for searching a shop and showing its details """ expected_search_results = [[ '2', '14458117', 'GetvelaTest2', 'check_circle', 'navigate_next' ]] expected_shop_owners = [['1', 'user1', 'navigate_next']] # search the shop ap = AdminPage(self.driver, self.ts) ap.go_to_subpage('Shops') ap.search('Getv') # check search results assert ap.get_search_results( ) == expected_search_results, 'Shop wasn\'t found as expected' # goto shop details and check them ap.go_to_search_shop_details('GetvelaTest2') assert ap.get_shop_name() == 'GetvelaTest2' assert ap.get_shop_id() == '2' assert ap.get_shop_channel_id() == '14458117' assert ap.get_shop_sync_status() == 'up_to_date' data = run_sql('HIVE', 'select_shop_last_sync', True) expected_last_sync = arrow.get( data[0][2]).to('local').format('MMM D, YYYY h:mm A') assert ap.get_shop_last_sync() == expected_last_sync assert ap.get_shop_invalid() == 'false' assert ap.get_shop_error() == '' # check counts of listings assert ap.get_shop_number_of_listings('active') == '3' assert ap.get_shop_number_of_listings('draft') == '0' assert ap.get_shop_number_of_listings('inactive') == '0' # check shop owners assert ap.get_shop_owners() == expected_shop_owners
def to_admin_page(self) -> AdminPage: path = self.driver.find_element_by_xpath( self.ADMIN_ITEM).get_attribute('href') admin_page = AdminPage(self.driver, path=path) admin_page.open() return AdminPage(self.driver, path=path)
def test_admin_login(login_page): login_page.login('user', 'bitnami1') admin_page = AdminPage(driver=login_page.driver) assert admin_page.user_profile_element
def test_go_to_products(login_page): login_page.login('user', 'bitnami1') admin_page = AdminPage(driver=login_page.driver) admin_page.go_to_products() products_page = ProductsPage(driver=login_page.driver) assert products_page.main_table_element
def test_admin_logout(login_page): login_page.login('user', 'bitnami1') admin_page = AdminPage(driver=login_page.driver) admin_page.logout() assert login_page.login_button_element
class Application: def __init__(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.home_page = HomePage(self.driver) self.create_account_page = CreateAccountPage(self.driver) self.admin_panel_login_page = AdminPanelLoginPage(self.driver) self.admin_page = AdminPage(self.driver) self.customer_list_page = CustomerListPage(self.driver) self.countries_page = CountriesPage(self.driver) self.geo_zones_page = GeoZonesPage(self.driver) self.catalog_page = CatalogPage(self.driver) def quit(self): self.driver.quit() def admin_login(self, admin): if self.admin_panel_login_page.open().is_on_this_page(): self.admin_panel_login_page.username_input.send_keys( admin.username) self.admin_panel_login_page.password_input.send_keys( admin.password) self.admin_panel_login_page.submit_login() return def logout(self): self.home_page.logout() def login_new_user(self, customer): self.home_page.email_input.send_keys(customer.email) self.home_page.password_input.send_keys(customer.password) self.home_page.login_button.click() def all_main_menu_items(self): items = self.admin_page.number_of_menu_items() for i in range(0, items): menu_items = self.admin_page.menu_items() menu_items[i].click() sub_items = self.admin_page.number_of_menu_sub_items() if sub_items == 0: continue for j in range(0, sub_items): menu_sub_items = self.admin_page.menu_sub_items() menu_sub_items[j].click() def sorting_countries(self): self.countries_page.open() number_countries = self.countries_page.number_of_countries() countries = self.countries_page.sorting_countries(number_countries) self.countries_page.countries_with_zones(countries) def sorting_geo_zones(self): self.geo_zones_page.open() number_geo_zones = self.geo_zones_page.number_of_geo_zones() geo_zones = self.geo_zones_page.sorting_geo_zones(number_geo_zones) self.geo_zones_page.geo_zones_with_zones(geo_zones) def register_new_customer(self, customer): self.create_account_page.open() self.create_account_page.firstname_input.send_keys(customer.firstname) self.create_account_page.lastname_input.send_keys(customer.lastname) self.create_account_page.address1_input.send_keys(customer.address) self.create_account_page.postcode_input.send_keys(customer.postcode) self.create_account_page.city_input.send_keys(customer.city) self.create_account_page.select_country(customer.country) self.create_account_page.select_zone(customer.zone) self.create_account_page.email_input.send_keys(customer.email) self.create_account_page.phone_input.send_keys(customer.phone) self.create_account_page.password_input.send_keys(customer.password) self.create_account_page.confirmed_password_input.send_keys( customer.password) self.create_account_page.create_account_button.click() def add_new_product(self, new_product): self.catalog_page.open_add_new_product() self.catalog_page.status_enabled.click() self.catalog_page.product_name_input.send_keys( new_product.product_name) self.catalog_page.code_product_input.send_keys( new_product.code_product) self.catalog_page.product_group_selection() self.catalog_page.quantity_input.send_keys(new_product.quantity) self.catalog_page.sold_out_status_selection() self.catalog_page.image_input.send_keys(new_product.image) self.catalog_page.date_valid_from_input.send_keys( new_product.date_valid_from) self.catalog_page.date_valid_to_input.send_keys( new_product.date_valid_to) self.catalog_page.open_information() self.catalog_page.select_manufacturer_id() self.catalog_page.keywords_input.send_keys(new_product.keywords) self.catalog_page.short_description_input.send_keys( new_product.short_description) self.catalog_page.trumbowyg_editor_input.send_keys( new_product.trumbowyg_editor) self.catalog_page.head_title_input.send_keys(new_product.head_title) self.catalog_page.meta_description_input.send_keys( new_product.meta_description) self.catalog_page.open_prices() self.catalog_page.purchase_price_input.send_keys( new_product.purchase_price) self.catalog_page.currency_selection() self.catalog_page.price_usd_input.send_keys(new_product.prices_usd) self.catalog_page.price_eur_input.send_keys(new_product.prices_eur) self.catalog_page.save_new_product() def get_customer_ids(self, customer): if self.admin_panel_login_page.open().is_on_this_page(): self.admin_panel_login_page.username_input.send_keys( customer.username1) self.admin_panel_login_page.password_input.send_keys( customer.password1) self.admin_panel_login_page.submit_login() return self.customer_list_page.open().get_customer_ids() def product_in_the_cart(self): self.home_page.open() self.home_page.product_selection() def clear_to_cart(self): self.home_page.open_cart() self.home_page.product_removal() def opening_new_windows(self): self.countries_page.open() self.countries_page.opening_the_country_creation_page() self.countries_page.opening_new_windows()