def test_create_order_check(self, product_name, num): ''' 在支付页面元素校验 ''' print('**在商品详情页,点击提交订单,验证是否跳转到提交订单页面**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(product_name) SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).product_buy(num) CreateOrderPage(self.driver).click_creat_order_btn() sleep(2) BasePage(self.driver).assert_true(ec.url_contains('pages/pay/pay?orderId')) BasePage(self.driver).assert_true(ec.title_is('订单支付')) BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._pay_btn)) print("提交订单按钮已展示") BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._pay_fee_form)) print("价格区域已展示") # 点击立即支付按钮 CreateOrderPage(self.driver).click_pay_btn() # 断言有没有报错 try: toast_txt = BasePage(self.driver).get_toast_text() TestCase().fail("支付报错:" + toast_txt) except exceptions.TimeoutException: BasePage(self.driver).assert_true(ec.url_contains('prepay_id=wx'))
def test_yandex_search(browser): main_page = SearchPage(browser, "https://yandex.ru/") main_page.open() main_page.search("гугл") assert main_page.should_be_drop_down_list() main_page.submit_search_by_enter() assert main_page.link_in_first_five_result()
class TestSearchIssue: SUMMARY_PREFIX = "(PYTHON AUTOTEST)" def setup(self): login_page = LoginPage(self.driver) login_page.open() login_page.login(const.USERNAME, const.PASSWORD) self.header = Header(self.driver) self.header.click_create_button() self.issue_summary = self.SUMMARY_PREFIX + str(round(random.random() * 100000)) create_issue_page = CreateIssuePage(self.driver) create_issue_page.set_summary(self.issue_summary) create_issue_page.click_create_button() create_issue_page.wait_until_page_disappear() self.search_page = SearchPage(self.driver) @pytest.mark.skip @pytest.mark.webtest @allure.title("Search issue by summary") def test_search_issue_positive(self): self.header.go_to_search_page() self.search_page.input_search_query(self.issue_summary) self.search_page.click_search_button() assert self.search_page.is_issue_exist(self.issue_summary) @pytest.mark.skip @pytest.mark.webtest @allure.title("Search non existing issue") def test_search_issue_negative(self): self.header.go_to_search_page() self.search_page.input_search_query("This issue definitely should not exist!") self.search_page.click_search_button() assert not self.search_page.is_issue_exist(self.issue_summary)
def test_verify_images(self, driver, text): result_page = SearchPage(driver).open().search_for(text) images_page = result_page.switch_to_images_page() images = images_page.get_elements(ImagesPage.images)[:5] for image in images: assert image.is_displayed()
def search_black_products(self): my_account_page = MyAccountPage(self.driver) my_account_page.search("Black") search_page = SearchPage(self.driver) product_components = search_page.get_product_components_with_color( "black") product_components[1].click_product_link()
def test_search(browser, movie_to_search): movie_to_search = "Аватар" main_page = MainPage(browser, url="https://www.kinopoisk.ru/") main_page.open() main_page.search_movie(movie_to_search) search_page = SearchPage(main_page.driver, main_page.driver.current_url) found_movie = search_page.check_guessing_of_search() assert found_movie == movie_to_search, f"Попытка угадать неверная, предложен {found_movie}"
def test_search_page_should_be_opened(browser, screenshot): # Arrange search_page = SearchPage(browser) name_of_site = "DuckDuckGo" # Act search_page.open_page() # Assert assert name_of_site in search_page.get_title( ), f"{name_of_site} should be opened"
def test_show_number(self): MainPage(self.driver).click_search_button() SearchPage(self.driver).wait_for_page_to_load() SearchPage(self.driver).select_first_offer() InvestitionPage(self.driver).wait_for_page_to_load() self.assertNotEqual(InvestitionPage(self.driver).get_telephone_number_count(), 9) InvestitionPage(self.driver).click_show_number_button() self.assertEqual(InvestitionPage(self.driver).get_telephone_number_count(), 9)
def test_trailers(browser, movie_to_search): search_page = SearchPage(browser, url="https://www.kinopoisk.ru/") search_page.open() search_page.search_movie(movie_to_search) search_page.check_guessing_of_search() search_page.go_to_guessing_movie() movie_page = MoviePage(search_page.driver, search_page.driver.current_url) movie_name = movie_page.get_movie_name() name_in_iframe = movie_page.open_trailer() assert movie_name == name_in_iframe, f"Имя фильма в открывшемся трейлере не совпадает со страницей"
def setUp(self): """Selenium initializing requirements are met in here.""" self.driver = webdriver.Chrome( "C:/Users/fadime.ozdemir/Documents/chromedriver_win32/chromedriver.exe" ) self.driver.maximize_window() self.methods = BaseClass(self.driver) self.main = AMAZON(self.driver, self.methods) self.login = LoginPage(self.driver, self.methods) self.search = SearchPage(self.driver, self.methods) self.product = ProductPage(self.driver, self.methods)
def test_product_buy(self, value=2): ''' 在商品详情页,点击立即购买 ''' print('**在商品详情页,点击立即购买,验证是否跳转到提交订单页**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box() SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).product_buy(value) BasePage(self.driver).assert_true(ec.title_contains('提交订单')) BasePage(self.driver).assert_true( ec.url_contains('/pages/order/createOrder'))
def test_book(self): '''python图书搜索''' self.bookPage = SearchPage(self.driver, root_uri=jd_uri) self.bookPage.get(homeUri) self.bookPage.search_box = self.param['case'] self.bookPage.search_buttom.click() self.bookPage.searchbox_input_exp = self.param['exp'] self.bookPage.search_checkbox.click() self.search_result = self.bookPage.search_result.text self.assertEqual(self.search_result, self.bookPage.searchbox_input_exp, msg='书名不一致')
def test_return_home(self): ''' 商品详情页的返回主页按钮 ''' print('**在商品详情页,点击左下角的首页按钮,验证是否跳转到首页**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box() SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).click_home_button() BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( HomePage(self.driver)._product))
def test_go_to_cart(self): ''' 商品详情页的跳转到购物车 ''' print('**在商品详情页,点击左下角的购物车按钮,验证是否跳转到购物车页面**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box() SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).click_cart_button() BasePage(self.driver).assert_true(ec.title_contains('购物车')) BasePage(self.driver).assert_true( ec.url_contains('emall/pages/myCart/myCart'))
def setup(self): login_page = LoginPage(self.driver) login_page.open() login_page.login(const.USERNAME, const.PASSWORD) self.header = Header(self.driver) self.header.click_create_button() self.issue_summary = self.SUMMARY_PREFIX + str(round(random.random() * 100000)) create_issue_page = CreateIssuePage(self.driver) create_issue_page.set_summary(self.issue_summary) create_issue_page.click_create_button() create_issue_page.wait_until_page_disappear() self.search_page = SearchPage(self.driver)
def test_used_packages_slider_filters_results(self, mozwebqa): homepage_obj = HomePage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_search() searchpage_obj.click_filter_libraries_link() initial_library_count = searchpage_obj.library_count_label searchpage_obj.move_used_packages_slider(10) Assert.true(initial_library_count > searchpage_obj.library_count_label)
def test_search(self, value): ''' 输入商品名称进行搜索 ''' print('**输入商品名称搜索,验证是否有搜索到相关商品**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(value) sleep(2) for productName in SearchPage(self.driver).get_product_names(): name = SearchPage(self.driver).get_element_value(productName) print("商品名称:" + name) BasePage(self.driver).check_exist_in_string(value, name)
def test_product_add_to_car(self, value, num): ''' 商品详情页,点击加入购物车 ''' print('**在商品详情页,点击加入购物车,验证购物车的商品数量是否对应增加**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(value) SearchPage(self.driver).click_search_product_01() before = ProductPage(self.driver).get_car_num_value() ProductPage(self.driver).product_add_to_car(num) after = ProductPage(self.driver).get_car_num_value() after_expected = int(before) + int(num) BasePage(self.driver).assert_equal(int(after), after_expected)
def test_mapy_search(browser): SEARCH = 'Dresden' search = FirstPage(browser) search.load() search.search(SEARCH) search_result = SearchPage(browser) assert search_result.search_result() == 'Dresden'
def test_activity_slider_filters_results(self, mozwebqa): homepage_obj = HomePage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_search() initial_addon_count = searchpage_obj.addons_count_label initial_library_count = searchpage_obj.library_count_label searchpage_obj.move_activity_slider(1) Assert.true(initial_addon_count > searchpage_obj.addons_count_label) Assert.true(initial_library_count > searchpage_obj.library_count_label)
def test_sku_add_to_car(self, value=2): ''' 从商品详情的规格弹窗,加入购物车 ''' print('**在商品详情页,打开规格弹窗,点击加入购物车,验证购物车商品数量是否增加**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box() SearchPage(self.driver).click_search_product_01() before = ProductPage(self.driver).get_car_num_value() ProductPage(self.driver).product_sku_add_to_car(value) after = ProductPage(self.driver).get_car_num_value() after_expected = int(before) + int(value) BasePage(self.driver).assert_equal(int(after), after_expected)
def test_clicking_library_author_link_displays_author_profile(self, mozwebqa): # go to library result and click author link homepage_obj = HomePage(mozwebqa) userpage_obj = UserPage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_search() library_name = searchpage_obj.library(1).name author_name = searchpage_obj.library(library_name).author_name searchpage_obj.library(library_name).click_author() Assert.equal(userpage_obj.author_name.lower(), author_name)
def test_view_source_library(self, mozwebqa): #This test is to check viewing the source of a library while not logged in homepage_obj = HomePage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) libraryeditor_obj = LibraryEditorPage(mozwebqa) #Go to search page and click view source on the first library listed homepage_obj.go_to_home_page() homepage_obj.header.click_search() searchpage_obj.library(1).click() Assert.true(libraryeditor_obj.tab(1).selected) Assert.not_none(libraryeditor_obj.tab(1).content)
def test_view_addon_source(self, mozwebqa): #This test is to check viewing the source of an addon while not logged in homepage_obj = HomePage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) addoneditor_obj = AddonEditorPage(mozwebqa) #Go to search page and click view source on the first addon listed homepage_obj.go_to_home_page() homepage_obj.header.click_search() searchpage_obj.addon(1).click() Assert.true(addoneditor_obj.tab(1).selected) Assert.not_none(addoneditor_obj.tab(1).content)
class CheckSearch(unittest.TestCase): def setUp(self) -> None: default_setup(self) self.main_page = MainPage(self.driver) self.search_page = SearchPage(self.driver) self.main_page.open() def test_check_search_line_appearance(self): self.main_page.open_search_line() is_all_right = self.main_page.check_search_line_appearance() self.assertTrue(is_all_right) def test_check_search_line_disappearance_by_click(self): self.main_page.open_search_line() self.main_page.search_by_click() is_all_right = self.main_page.check_search_line_disappearance() self.assertTrue(is_all_right) def test_check_search_line_disappearance_by_Enter(self): self.main_page.open_search_line() self.main_page.search_by_Enter() is_all_right = self.main_page.check_search_line_disappearance() self.assertTrue(is_all_right) def test_check_search_prompt_window_appearance(self): self.main_page.input_text_into_search_line() is_all_right = self.main_page.check_search_prompt_window_appearance() self.assertTrue(is_all_right) def test_check_searching_by_click(self): self.main_page.input_text_into_search_line() self.main_page.search_by_click() is_all_right = self.search_page.check_appearance() self.assertTrue(is_all_right) def test_check_searching_by_Enter(self): self.main_page.input_text_into_search_line() self.main_page.search_by_Enter() is_all_right = self.search_page.check_appearance() self.assertTrue(is_all_right) def test_check_searching_by_prompt(self): self.main_page.input_text_into_search_line() self.main_page.choise_prompt() is_all_right = self.main_page.check_info_popup_appearance() self.assertTrue(is_all_right) def tearDown(self): self.driver.quit()
def test_after_search_text_changing_new_phrase_should_be_searched( browser, screenshot): search_page = SearchPage(browser) result_page = ResultPage(browser) phrase = "Panda" new_phrase = "Python" # Arrange search_page \ .open_page() \ .fill_in_search_field(phrase) \ .click_search_button() # Act result_page \ .clear_search_input() \ .fill_in_search_field_new_search_text(new_phrase) \ .click_search_button() # Assert assert new_phrase in result_page.get_title( ), "New phrase should be searched" for title_link in result_page.get_all_links_values(): assert new_phrase.lower() in title_link.lower( ), "Part of new phrase should be contained into title of links"
def search(self, keyword: Text): locator = self._yaml.data['main']['search'] self.el = self.find_element(locator) self.el.clear() self.el.send_keys(keyword) self.el.send_keys(Keys.ENTER) return SearchPage(self._driver)
def test_searchpage(self): home_page = HomePage(self.driver) search_page = SearchPage(self.driver) casino_page = CasinoPage(self.driver) home_page.verify_home_page() casino_page.verify_casino_page() search_page.click_search_button() search_page.enter_search_data() search_page.validate_game_page()
def test_result_page_should_be_opened_with_exact_request( browser, phrase, screenshot): search_page = SearchPage(browser) result_page = ResultPage(browser) # Arrange search_page.open_page() # Act search_page \ .fill_in_search_field(phrase) \ .click_search_button() # Assert assert phrase in result_page.get_title() for title_link in result_page.get_all_links_values(): assert phrase.lower() in title_link.lower()
def test_special_product_info_check(self, value): ''' 秒杀活动的商品详情元素校验 ''' print('**在商品详情页,与接口返回进行对比,验证特价活动的商品价格是否展示正确**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(value) SearchPage(self.driver).click_search_product_01() product_id = ProductPage(self.driver).get_product_id_from_url() page_special_info_list = ProductPage( self.driver).get_page_special_price_info() print(page_special_info_list) api_special_info_list = ProductPage( self.driver).get_api_special_price_info(product_id=product_id, token=self.token) print(api_special_info_list) self.assertListEqual(page_special_info_list, api_special_info_list)
def __init__(self, browser): self.logger = logging.getLogger("PAGE NAME") self.tests_logger = logging.getLogger("TEST NAME") self.common = CommonPage(self.logger, browser) self.login = LoginPage(self.logger, browser) self.main = MainPage(self.logger, browser) self.private = PrivatePage(self.logger, browser) self.search = SearchPage(self.logger, browser)
def test_search_by_library_name_returns_library(self, mozwebqa): homepage_obj = HomePage(mozwebqa) loginpage_obj = LoginPage(mozwebqa) dashboard_obj = DashboardPage(mozwebqa) librarypage_obj = LibraryEditorPage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_signin() loginpage_obj.login() #create a new library with the valid criteria (version not initial) dashboard_obj.header.click_home_logo() homepage_obj.click_create_lib_btn() librarypage_obj.type_library_version('searchable') librarypage_obj.click_save() searchterm = librarypage_obj.library_name librarypage_obj.header.click_home_logo() homepage_obj.header.click_search() searchpage_obj.search_until_package_exists(searchterm, searchpage_obj.library(searchterm)) Assert.true(searchpage_obj.library(searchterm).is_displayed, '%s not found before timeout' % searchterm) searchpage_obj.delete_test_data()
def test_create_folder_and_items(browser, mobile): functions.login(browser) my_maps = FirstPage(browser) my_maps.load() my_maps.my_maps() my_maps = MyMapsPage(browser) my_maps.create_folder('new folder') SEARCH: str = 'Rudolfinum' functions.search_element(browser, SEARCH) search = SearchPage(browser) search.save_exact_match() save_page = SavePage(browser) save_page.select_folder('new folder') save_page.save() planning = FirstPage(browser) planning.load() planning.planning() auto = PlanningPage(browser) # auto.auto() auto.start() auto.end() auto.save_route() save_page = SavePage(browser) save_page.change_name('Route') save_page.select_folder('new folder') save_page.save() elem = functions.check_mobile_folder(mobile) elem = mobile.find_element_by_id('cz.seznam.mapy:id/image').click() folder_screen = FolderScreen(mobile) print(len(folder_screen.get_titles)) mobile.back() #delete functions.delete_folder(mobile)
def test_investition_question(self): MainPage(self.driver).click_search_button() SearchPage(self.driver).wait_for_page_to_load() SearchPage(self.driver).select_first_offer() InvestitionPage(self.driver).wait_for_page_to_load() self.assertTrue( InvestitionPage(self.driver).is_send_button_clickable()) InvestitionPage(self.driver).input_name((Faker("pl_PL").name())) InvestitionPage(self.driver).input_email((Faker("en_GB").email())) InvestitionPage(self.driver).click_accept_rules_checkbox() InvestitionPage(self.driver).send_question_message() InvestitionPage(self.driver).send_question_message() self.assertFalse( InvestitionPage(self.driver).is_send_button_clickable())
def test_create_order_info_check(self, product_name, num): ''' 提交订单页面元素检查 ''' print('**从商品详情页,点击立即购买,验证是否跳转到提交订单页**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(product_name) SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).product_buy(num) sleep(2) BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._addr_form)) print("收货人地址栏已展示") BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._product_list_form)) print("商品列表已展示") BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._order_fee_form)) print("金额计算区域已展示") BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._create_order_btn_form)) print("提交订单按钮栏已展示")
def test_comparison_info_cart_vs_search(self): count = random.randint(0, 2) module_cart = ModulePage(self.driver) header_cart = HeaderPage(self.driver) cart = CartPage(self.driver) search = SearchPage(self.driver) self.driver.get(TEST_URL + project_page.get('search')) page_info = search.set_recomended_product_info(count) search.get_first_offers_buy_button[count].click() search.get_first_offers_in_cart_button[0].click() assert self.driver.current_url == (TEST_URL + project_page.get('cart')) cart_info = cart.set_product_info() # self.close_draggable(self.driver) header_cart.click_cart() assert module_cart.check_cart_module_info_loaded('грн') cart_module_info = module_cart.set_product_info() assert page_info == cart_info assert page_info == cart_module_info
def test_search_partial_library_name_returns_library(self, mozwebqa): homepage_obj = HomePage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_search() # get library name, split string in half and search with it # results should be returned including the original addon top_library_name = searchpage_obj.library(1).name search_string = top_library_name[:4] searchpage_obj.type_search_term(search_string) searchpage_obj.click_search() Assert.true(searchpage_obj.library_element_count() >= 1) Assert.true(searchpage_obj.library(top_library_name).is_displayed, 'Library \'%s\' not found' % top_library_name)
def test_empty_search_returns_all_results(self, mozwebqa): homepage_obj = HomePage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_search() # search with a zero length string should still return results # default display is for 5 addons/5 libraries # same as filtering by 'Combined' searchpage_obj.clear_search() searchpage_obj.click_search() Assert.equal(searchpage_obj.addons_element_count(), 5) Assert.equal(searchpage_obj.library_element_count(), 5)
def test_search_library_filter_results_match(self, mozwebqa): homepage_obj = HomePage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_search() # search with a generic but safe string 'test' # filter by add-on results and check number searchpage_obj.type_search_term('test') searchpage_obj.click_search() searchpage_obj.click_filter_libraries_link() # 20 items maximum per page label_count = min(searchpage_obj.library_count_label, 20) element_count = searchpage_obj.library_element_count() Assert.equal(label_count, element_count, 'Number of items displayed should match 20 or total number of results, whichever is smallest. This is due to pagination.')
def test_clicking_library_source_displays_editor(self, mozwebqa): homepage_obj = HomePage(mozwebqa) loginpage_obj = LoginPage(mozwebqa) dashboard_obj = DashboardPage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) editorpage_obj = LibraryEditorPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_signin() loginpage_obj.login() dashboard_obj.header.click_search() library_name = searchpage_obj.library(1).name searchpage_obj.library(library_name).click() Assert.equal(editorpage_obj.library_name, library_name) searchpage_obj.delete_test_data()