def test_partner(self): HomePage(self.driver).visited_page() HomePage(self.driver).click_login_page() LoginPage(self.driver).login_amazon(self.USER_MAIL, self.USER_PASSWORD) HomePage(self.driver).search_keyword(self.SEARCH_TEXT) SearchResultPage(self.driver).check_search_result_on_page() SearchResultPage(self.driver).go_second_page() SearchResultPage(self.driver).select_preferred_product(2) ProductPage(self.driver).add_to_wish_list() ProductPage(self.driver).open_wish_list_menu() WishListPage(self.driver).wish_list_product_confirm() WishListPage(self.driver).delete_from_wish_list()
def test_no_result_found(self): """ This method is to verify 'no result found page' functionality of Google. It verified that the given search string appears on no result found page """ search_str = "NO_RE$ULT_FOUND_TE$T_$CENARIO" home_page = HomePage(self.driver) home_page.search_action(search_str) search_result_page = SearchResultPage(self.driver) actual_search_result = search_result_page.get_no_result_found_txt() assert search_str in actual_search_result, "search string {0} should be present on No result found page.".format( search_str)
def test_google_search_did_you_mean(self): """ This method is to test 'did you mean' functionality of Google. It verifies that the corrected word is suggested for search. """ search_str = "fortnight" home_page = HomePage(self.driver) home_page.search_action(search_str) search_result_page = SearchResultPage(self.driver) actual_suggested_text = search_result_page.get_suggested_text() expected_suggested_text = "fortnite" assert actual_suggested_text == expected_suggested_text, \ "actual suggested text {0} is not same as expected suggested text {1}".format(actual_suggested_text, expected_suggested_text)
def test_google_search(self): """ This method is to test valid google search. It verifies that all the links returned as searched result contain the searched keyword in it """ search_str = "automation" home_page = HomePage(self.driver) home_page.search_action(search_str) search_result_page = SearchResultPage(self.driver) search_result_lst = search_result_page.get_all_searched_links() for link in search_result_lst: assert search_str.lower() in link.lower( ), "search string {0} is not present in link {1}".format( search_str, link)
def __init__(self, driver): self.driver = driver self.main_page = MainPage(self.driver) self.search_result_page = SearchResultPage(self.driver) self.amazon_top_menu = TopMenu(self.driver) self.sign_in_page = SignIn(self.driver) self.shopping_cart_page = ShoppingCart(self.driver) self.product_page = ProductPage(self.driver)
def setup(self): """ This fixture holds the common setup steps required to Login to the application returns: Home page of the application for authenticated users """ self.webdriver = webdriver.Chrome() self.base_page = BasePage(self.webdriver) self.home_page = HomePage(self.webdriver) self.login_page = Login(self.webdriver) self.search_result_page = SearchResultPage(self.webdriver) self.valid_credentials = conf_reader.get_user_credentials() self.landing_page_hotel = LandingPageHotel(self.webdriver) self.home_page.open_login_page() self.login_page.user_login(self.valid_credentials.email, self.valid_credentials.password) self.webdriver.get("https://www.phptravels.net/m-thhotels") yield self.webdriver.quit()
def app_setup(self): self.webdriver = webdriver.Chrome() self.home_page = HomePage(self.webdriver) self.login_page = Login(self.webdriver) self.landing_page_hotel = LandingPageHotel(self.webdriver) self.valid_credentials = conf_reader.get_user_credentials() self.search_result_page = SearchResultPage(self.webdriver) yield self.webdriver.quit()
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 setup(self): """Tours This fixture holds the common setup steps required to Login to the application returns: Home page of the application for authenticated users """ self.webdriver = webdriver.Chrome() self.home_page = HomePage(self.webdriver) self.login_page = Login(self.webdriver) self.search_result_page = SearchResultPage(self.webdriver) self.valid_credentials = conf_reader.get_user_credentials() self.landing_page_tours = LandingPageTour(self.webdriver) self.home_page.open_login_page() self.login_page.user_login(self.valid_credentials.email, self.valid_credentials.password) self.landing_page_tours.click_tour_button() yield self.webdriver.quit()
from config import Config from pages.login_page import LoginPage from pages.main_page import MainPage from pages.search_result_page import SearchResultPage import time driver = Config.driver driver.get(Config.server) login_page = LoginPage(driver) login_page.enter_username(Config.user) login_page.enter_password(Config.password) login_page.login() main_page = MainPage(driver) main_page.click_not_now_button() main_page.type_in_search_field("fitness") main_page.click_result_with_text("#fitness") search_page = SearchResultPage(driver) time.sleep(5) search_page.check_button_text("Follow") driver.quit()
from selenium import webdriver from pages.login_page import LoginPage from pages.main_page import MainPage from pages.search_result_page import SearchResultPage import time driver = webdriver.Chrome( "C:/Users/y.skubak/Desktop/python_course/chromedriver.exe") driver.implicitly_wait(5) driver.get("https://www.instagram.com/accounts/login/") login_page = LoginPage(driver) login_page.enter_username("pyautomation") login_page.enter_password("Ab123456789!") login_page.click_login() main_page = MainPage(driver) main_page.click_not_now_button() main_page.type_in_search_field("#fitness") main_page.click_result_with_text("#fitness") search_result_page = SearchResultPage(driver) time.sleep(3) #assert "Follow" in search_result_page.get_follow_button_text() search_result_page.get_button_text() driver.quit()
class TestHotel: @pytest.fixture(scope='function', autouse=True) def setup(self): """ This fixture holds the common setup steps required to Login to the application returns: Home page of the application for authenticated users """ self.webdriver = webdriver.Chrome() self.base_page = BasePage(self.webdriver) self.home_page = HomePage(self.webdriver) self.login_page = Login(self.webdriver) self.search_result_page = SearchResultPage(self.webdriver) self.valid_credentials = conf_reader.get_user_credentials() self.landing_page_hotel = LandingPageHotel(self.webdriver) self.home_page.open_login_page() self.login_page.user_login(self.valid_credentials.email, self.valid_credentials.password) self.webdriver.get("https://www.phptravels.net/m-thhotels") yield self.webdriver.quit() def test_user_can_not_search_with_blank_hotel_or_city_name( self, data_trip_with_out_hotel_name): """ Test- 2 This test ensures the mandatory details of city/hotel name are compulsorily given by users. This test will fail , but that indicates that user can perform search with blank hotel name """ self.landing_page_hotel.search_and_select_city( data_trip_with_out_hotel_name.hotel_name) self.landing_page_hotel.select_checkin_and_checkout_dates( data_trip_with_out_hotel_name.check_in_date, data_trip_with_out_hotel_name.check_out_date) self.landing_page_hotel.click_search_button() assert not self.search_result_page.is_loaded( self.search_result_page.key_locators) """assert here should have been on The Search button is not clickable or that there is an error message. but since that demands a different implementation, My assertion is for search result page not loaded""" def test_checkout_date_can_not_be_prior_to_checkin_date( self, data_check_out_before_check_in_details): """ Test- 3: Assuming that user is entering a Checkout date which is prior to checkin date (which is possible as per current implementation) for hotel search , This test will fail to indicate that the input provided is incorrect """ self.landing_page_hotel.search_and_select_city( data_check_out_before_check_in_details.hotel_name) self.landing_page_hotel.select_checkin_and_checkout_dates( data_check_out_before_check_in_details.check_in_date, data_check_out_before_check_in_details.check_out_date) assert data_check_out_before_check_in_details.check_in_date < data_check_out_before_check_in_details.check_out_date def test_number_of_guests_can_not_be_zero_or_less(self, data_number_of_guests): """ Test- 4 The number of guests can not be zero or less and thus negative values should not be allowed This test will fail if User gives 0 as input for number of guests We are currently giving 0 as input for guests , thus this will fail """ adult_guests = 0 child_guests = 0 self.landing_page_hotel.search_and_select_city( data_number_of_guests.hotel_name) self.landing_page_hotel.select_checkin_and_checkout_dates( data_number_of_guests.check_in_date, data_number_of_guests.check_out_date) self.landing_page_hotel.enter_number_of_guests(adult_guests, child_guests) assert self.landing_page_hotel.get_number_of_guests() > 0 def test_number_of_guests_can_not_exceed_five(self, setup, data_number_of_guests): """ Test- 5 The number of guests , if more than 5 would need a bulk booking , this is a scenario which is more near to real life booking by a customer. (Wee can define our own upper limit , idea is big numbers as 100000 should not be allowed) """ adult_guests = 10 child_guests = 0 self.landing_page_hotel.search_and_select_city( data_number_of_guests.hotel_name) self.landing_page_hotel.select_checkin_and_checkout_dates( data_number_of_guests.check_in_date, data_number_of_guests.check_out_date) self.landing_page_hotel.enter_number_of_guests(adult_guests, child_guests) assert self.landing_page_hotel.get_number_of_guests() <= 5 def test_checkin_date_can_not_be_in_past(self, setup, data_number_of_guests): """ Test- 6 There can not be a hotel search for a past date. If a user is trying to make such a booking, This should give user an error """ self.landing_page_hotel.search_and_select_city( data_number_of_guests.hotel_name) self.landing_page_hotel.select_checkin_and_checkout_dates( data_number_of_guests.check_in_date, data_number_of_guests.check_out_date) todays_date = date.today() required_format_today = todays_date.strftime("%d/%m/%Y") assert required_format_today > data_number_of_guests.check_in_date """The assert should be that the search button is not clickable,