def test_verify_name_page(self, browser): page = MainPage(browser) page.open() page.user_in_system() page.go_to_account_page() account_page = AccountPage(browser) account_page.verify_page_name()
def __init__(self): self._driver = Firefox(executable_path=urls.FIREFOX_EXE_PATH) self._setup_driver() self._account = AccountPage(self._driver) self._practice = PracticePage(self._driver) self._settings = SettingsPage(self._driver) self._keyboard = Keyboard()
def test_guest_can_login_successful(browser): link = "http://automationpractice.com/index.php?controller=authentication" page = LoginPage(browser, link) page.open() page.login_user('*****@*****.**', '123456') account_page = AccountPage(browser, browser.current_url) account_page.should_be_account_page()
def test_guest_can_create_account(self, browser): # Arrange page = LoginPage(browser, URLLocators.LOGIN_URL) page.open() page.check_is_login_page() # Act page.register_new_user() page.go_to_account_page() # Assert profile_page = AccountPage(browser, browser.current_url) profile_page.check_account_profile_page()
def login(driver, username, password): welcome(driver) navigation = Navigation(driver) navigation.account_btn().click() account_page = AccountPage(driver) account_page.click_login().click() register_page = RegisterPage(driver) register_page.login_btn().click() login_page = LoginPage(driver) login_page.login(username, password)
def test_login_correct_credents(self): # Scenariusz: Logowanie zarejestrowanego użytkownika poprawnymi danymi do logowania # 1. Kliknij "MY ACCOUNT" # ta metoda klika My Account i Login za jednym razem home_page = HomePage(self.driver) home_page.click_my_account_btn() ''' # 2. Kliknij "Login" main_page.click_login() time.sleep(3) ''' # 3. Wprowadź poprawny adres email login_page = LoginPage(self.driver) login_page.submit_email('*****@*****.**') # 4. Wprowadź poprawne hasło login_page.submit_password('demouser') # 5. Kliknij 'LOGIN' login_page.click_login_btn() #Oczekiwany rezulat: Użytkownik jest poprawnie zalogowany. Następuje automatyczne przeniesienie na stronę https://www.phptravels.net/account/ account_page = AccountPage(self.driver)
def test_logout(self): username = '******' password = '******' login.login(self.driver, username, password) time.sleep(3) common.swipe('up', self.driver) account_page = AccountPage(self.driver) account_page.setup().click() setup_page = SetupPage(self.driver) setup_page.logout_btn().click() setup_page.logout_alert_yes().click() name = setup_page.name().get_attribute('text') print(name) self.assertTrue('函数' not in name)
def test_verify_profile_buttons_under_form(self, browser): page = MainPage(browser) page.open() page.user_in_system() page.go_to_account_page() account_page = AccountPage(browser) account_page.browser.execute_script("window.scrollBy(0, 100);") account_page.verify_change_pass_button() account_page.verify_edit_profile_button() account_page.verify_delete_profile_button()
class TypingBot: def __init__(self): self._driver = Firefox(executable_path=urls.FIREFOX_EXE_PATH) self._setup_driver() self._account = AccountPage(self._driver) self._practice = PracticePage(self._driver) self._settings = SettingsPage(self._driver) self._keyboard = Keyboard() def _setup_driver(self): self._driver.set_window_size(1440, 900) self._driver.implicitly_wait(timers.IMPLICIT_WAIT) def login(self): self._driver.get(urls.LOGGED_IN_URL) print('Logged In!') def go_to_practice(self): self._account.click_practice() self._practice.close_popup_window() def change_settings(self): self._practice.go_to_settings() self._settings.extend_alphabet() self._settings.extend_lesson_length() self._settings.enable_capital_letters() self._settings.enable_punctuation_characters() self._settings.save_settings() def practice_for_repetitions(self, practice_reps=1): for i in range(practice_reps): input_text = self._get_text_input_items() self._keyboard.type_sentence(input_text) time.sleep(timers.WAIT_FOR_NEXT_PRACTICE) def cleanup(self): self._driver.quit() def _get_text_input_items(self): input_items = self._practice.find_text_input_items() input_items_text = [ ' ' if item.text == '␣' else item.text for item in input_items ] input_text = ''.join(input_items_text) return input_text
def test_cancel_change_password(self, browser): page = MainPage(browser) page.open() page.user_in_system() page.go_to_account_page() account_page = AccountPage(browser) account_page.press_change_pass_button() change_password_page = ChangePasswordPage(browser) change_password_page.press_button_cancel() account_page = AccountPage(browser) account_page.open()
def test_cancel_edit_profile_name(self, browser): page = MainPage(browser) page.open() page.user_in_system() page.go_to_account_page() account_page = AccountPage(browser) account_page.press_edit_profile_button() user_profile_edit_page = AccountProfileEditPage(browser) user_profile_edit_page.press_button_cancel() account_page = AccountPage(browser) account_page.open()
def test_cancel_delete_profile(self, browser): page = MainPage(browser) page.open() page.user_in_system() page.go_to_account_page() account_page = AccountPage(browser) account_page.press_delete_profile_button() delete_profile_page = DeleteProfilePage(browser) delete_profile_page.cancel_delete_profile_link() account_page = AccountPage(browser) account_page.open()
def test_edit_profile_name(self, browser): page = MainPage(browser) page.open() page.user_in_system() page.go_to_account_page() account_page = AccountPage(browser) account_page.press_edit_profile_button() user_profile_edit_page = AccountProfileEditPage(browser) user_profile_edit_page.change_name_field() user_profile_edit_page.press_button_save() account_page = AccountPage(browser) account_page.alert_of_change_profile()
def test_success_adding_address(browser): #Arrange link = data.MAIN_PAGE_LINK page = MainPage(browser, link) page.open() page.go_to_login_page() login_page = LoginPage(browser, browser.current_url) login_page.sign_in(data.MY_LOGIN, data.MY_PASSWORD) main_page = MainPage(browser, browser.current_url) main_page.go_to_profile() account_page = AccountPage(browser, browser.current_url) #Act account_page.select_address_book() account_page.open_new_address_form() account_page.add_new_address(data.APPEAL, data.FIRST_NAME, data.LAST_NAME, data.FIRST_LINE_ADDRESS,\ data.EMPTY_INPUT,data.EMPTY_INPUT, data.CITY, data.EMPTY_INPUT, data.POSTCODE,\ data.COUNTRY,data.EMPTY_INPUT, data.EMPTY_INPUT) #Assert account_page.address_added()
def login(self, login, password): self.clear_field_and_send_keys( login, self._login_field, "The login field wasn't found on login page") self.clear_field_and_send_keys( password, self._password_field, "The password field wasn't found on login page") self.click( self._login_submit, "Button to submit login action wasn't found on the login page") return AccountPage(self.get_driver())
def test_login_to_the_system(browser): with allure.step('Open login page'): main_page = MainPage(browser) main_page.open_login_page() with allure.step('Check login page displays'): login_page = LoginPage(browser) login_page.should_be_login_page() with allure.step('Login as a user "*****@*****.**"'): login_page.login("*****@*****.**", "11111") with allure.step('Check account page displays'): AccountPage(browser).should_be_account_page()
def test_password_change(self): # 1. Logowanie home_page = HomePage(self.driver) home_page.click_my_account_btn() # 2. Wprowadź poprawny adres email login_page = LoginPage(self.driver) login_page.submit_email('*****@*****.**') # 3. Wprowadź poprawne hasło login_page.submit_password('demouser') # 4. Kliknij 'LOGIN' login_page.click_login_btn() account_page = AccountPage(self.driver) # 5. Kliknij 'My Profile' account_page.click_my_profile() # 6. Wprowadz nowe haslo account_page.enter_new_password('demouser123') # 7. Wprowadz powtornie nowe haslo account_page.confirm_new_password('demouser123') # 8. Kliknij SUBMIT account_page.click_submit() # Oczekiwany rezultat: Wyświetla się komunikat "Profile Updated Successfully" success_notices = self.driver.find_elements_by_xpath( '//div[@class="alert alert-success"]') visible_success_notices = [] for success in success_notices: if success.is_displayed(): visible_success_notices.append(success) self.assertEqual(len(visible_success_notices), 1) self.assertEqual(visible_success_notices[0].text, "Profile Updated Successfully.")
def test_change_user(browser, user_change_config_data): user_email, user_password, \ new_first_name, new_last_name = user_change_config_data main_page = MainPage(browser) main_page.open_base_page() main_page.login(user_email, user_password) user_page = UserPage(browser) user_page.button_edit_account_click() account_page = AccountPage(browser) account_page.change_firstname_field(new_first_name) account_page.change_lastname_field(new_last_name) account_page.save_change() check_change_user(new_first_name, new_last_name)
def test_guest_can_delete_account(self, browser): # Arrange page = LoginPage(browser, LOGIN_URL) page.open() page.register_new_user() page.go_to_account_page() # Act profile_page = AccountPage(browser, browser.current_url) profile_page.delete_user_account() # Assert profile_page.check_is_user_logged_out()
def account_page(driver): account_page = AccountPage(driver) def _login(): login_page = LoginPage(driver) with allure.step('Login step'): LOGGER.info(f'Login step with {USERNAME} and {PASSWORD}') login_page.login(USERNAME, PASSWORD) _login() yield account_page def _logout(): logout_page = BasePage(driver) with allure.step('Logout step'): LOGGER.info('Logout') logout_page.wait_for_element_and_click(*LoginPageLocators.LOGOUT_BTN) _logout()
def object_setup(self): self.lp = LoginPage(self.driver) self.pip = PersonalInformationPage(self.driver) self.ap = AccountPage(self.driver) self.fpp = ForgottenPasswordPage(self.driver) self.ast = AssertStatus()
class TestLogin(): @pytest.fixture(autouse=True) def object_setup(self): self.lp = LoginPage(self.driver) self.pip = PersonalInformationPage(self.driver) self.ap = AccountPage(self.driver) self.fpp = ForgottenPasswordPage(self.driver) self.ast = AssertStatus() @pytest.mark.parametrize( "email, password, email_error_message, password_error_message", get_csv_data("login_test_data.csv")) def test_invalid_login(self, email, password, email_error_message, password_error_message): result_1 = self.lp.navigate_to_login_page() self.ast.collect_result(result_1, "Login Page Title Verification") self.lp.login(email, password) result_2 = self.lp.verify_invalid_login_error_message( email_error_message, password_error_message) self.ast.determine_result(result_2, "Failed Login Verification", "test_invalid_login") def test_valid_login(self): result_1 = self.lp.navigate_to_login_page() self.ast.collect_result(result_1, "Login Page Title Verification") self.lp.login("*****@*****.**", "123456") result_2 = self.lp.verify_valid_login() self.ast.determine_result(result_2, "Login Verification", "test_valid_login") @pytest.mark.parametrize( "email, error_message", get_csv_data("retrieve_password_email_test_data.csv")) def test_invalid_password_retrieval(self, email, error_message): self.lp.navigate_to_forgotten_password_page() result_1 = self.fpp.verify_forgotten_password_page_title() self.ast.collect_result(result_1, "Forgotten Password Page Title Verification") self.fpp.retrieve_password(email) result_2 = self.fpp.verify_invalid_password_retrieval(error_message) self.ast.determine_result(result_2, "Failed Password Retrieval Verification", "test_invalid_password_retrieval") def test_valid_password_retrieval(self): self.lp.navigate_to_forgotten_password_page() result_1 = self.fpp.verify_forgotten_password_page_title() self.ast.collect_result(result_1, "Forgotten Password Page Title Verification") self.fpp.retrieve_password("*****@*****.**") result_2 = self.fpp.verify_valid_password_retrieval() self.ast.determine_result(result_2, "Password Retrieval Verification", "test_valid_password_retrieval") def test_changed_password_login(self): result_1 = self.lp.navigate_to_login_page() self.ast.collect_result(result_1, "Login Page Title Verification") self.lp.login("*****@*****.**", "123456") result_2 = self.lp.verify_valid_login() self.ast.collect_result(result_2, "Login Verification") self.ap.click_information_link() self.pip.change_password("123456", "1234567", "1234567") result_3 = self.pip.Verify_valid_password_change() self.ast.collect_result(result_3, "Changed Password Verification") result_4 = self.lp.navigate_to_login_page() self.ast.collect_result(result_4, "Login Page Title Verification") self.lp.login("*****@*****.**", "123456") result_5 = self.lp.verify_invalid_password_error_message() self.ast.collect_result(result_5, "Failed Login Verification") self.lp.login("*****@*****.**", "1234567") result_6 = self.lp.verify_valid_login() self.ast.collect_result(result_6, "Login Verification") self.ap.click_information_link() self.pip.change_password("1234567", "123456", "123456") result_7 = self.pip.Verify_valid_password_change() self.ast.determine_result(result_7, "Changed Password Verification", "test_changed_password_login")
def click_account_page(self): self.click(self._aleno_logo, "Aleno logo wasn't found") return AccountPage(self.get_driver())
def open_account_page(self): self.get(self._base_url) return AccountPage(self.get_driver())
def sign_in_valid(self): self.driver_extensions.click_visible(self.SIGN_IN_BTN) return AccountPage(self.driver)
def test_verify_menu_links(self, browser): page = MainPage(browser) page.open() page.user_in_system() page.go_to_account_page() account_page = AccountPage(browser) account_page.verify_menu_profile_link() account_page.verify_menu_order_history() account_page.verify_menu_address_book() account_page.verify_menu_address_book() account_page.verify_menu_email_history() account_page.verify_menu_product_alerts() account_page.verify_menu_notifications() account_page.verify_menu_wish_lists()
def save_restaurant(self): self.click(self._save_restaurant_button, "Save restaurant button wasn't found on the register restaurant page") return AccountPage(self.get_driver())
def test_clear_settings(self): ap = AccountPage(driver) ap.open_account_settings() ap.clear_settings() ap.yes_on_popup()
def test_change_passwords(self, browser): page = MainPage(browser) page.open() page.user_in_system() page.go_to_account_page() account_page = AccountPage(browser) account_page.press_change_pass_button() change_password_page = ChangePasswordPage(browser) change_password_page.change_password_for_new() account_page = AccountPage(browser) account_page.alert_of_change_password() account_page.browser.execute_script("window.scrollBy(0, 100);") account_page.press_change_pass_button() change_password_page = ChangePasswordPage(browser) change_password_page.change_password_for_old() account_page = AccountPage(browser) account_page.alert_of_change_password()