def test_update_emails(self, base_url, selenium, ldap, counter_api, token, new_user): home_page = Homepage(base_url, selenium) two_fa = home_page.login_with_ldap(ldap['email'], ldap['password']) two_fa.enter_passcode(conftest.passcode(ldap['secret_seed'], conftest.increase_otp_counter(counter_api))) while two_fa.is_error_message_displayed: two_fa.enter_passcode(conftest.passcode(ldap['secret_seed'], conftest.increase_otp_counter(counter_api))) settings_page = home_page.header.click_settings_menu_item() profile_page = settings_page.profile primary_email = profile_page.primary_email new_email = new_user['email'] profile_page.add_email(new_email) profile_page.click_update_emails() assert new_email in profile_page.secondary_email_address time.sleep(8) api = token['api'] user_logs = requests.get(api, headers={'Authorization': 'Bearer {0}'.format(conftest.access_token(token))}) assert primary_email == json.loads(user_logs.content)['app_metadata']['emails'][0]['value'] a = len(json.loads(user_logs.content)['app_metadata']['emails']) assert new_email == json.loads(user_logs.content)['app_metadata']['emails'][a - 1]['value'] # Cleanup profile_page.delete_secondary_email(new_email) profile_page.click_update_emails()
def test_e2e(self, data_e2e): log = self.get_logger() self.log_testdata_info(log, data_e2e) # Test Data products_to_buy = [x.strip() for x in str(data_e2e['products']).split(',')] search_destination = data_e2e['search_country'] ship_to_destination = data_e2e['country'] success_message_expected = ShopData.SUCCESS_MSG_EXPECTED # Steps and Assertions homepage = Homepage(self.driver, self.test_url) homepage.goto() product_page = homepage.click_shop_button() product_page.add_products_to_cart(products_to_buy) assert product_page.get_checkout_number() == len(products_to_buy) cart_page = product_page.click_checkout_button() products_in_cart = cart_page.get_products() product_names_in_cart = [p.name for p in products_in_cart] assert product_names_in_cart == products_to_buy product_totals_in_cart = [p.total for p in products_in_cart] assert sum(product_totals_in_cart) == cart_page.get_total() checkout_page = cart_page.click_checkout_button() checkout_page.enter_destination(search_destination) checkout_page.select_destination_from_dropdown(ship_to_destination) assert ship_to_destination == checkout_page.get_destination() checkout_page.click_agree_condition() checkout_page.click_purchase_button() assert success_message_expected in checkout_page.get_success_text()
def test_login(self): driver = self.driver driver.get(self.getDomain()) Homepage_obj = Homepage(self.driver) Homepage_obj.user_is_on_homepage() Homepage_obj.login() Homepage_obj.successful_login()
def test_login_error(self): driver = self.driver driver.get(self.getDomain()) Homepage_obj = Homepage(self.driver) Homepage_obj.user_is_on_homepage() Homepage_obj.login_invalid_email() Homepage_obj.error_login()
def test_home(self, home_data): log = self.get_logger() self.log_testdata_info(log, home_data) homepage = Homepage(self.driver, self.test_url) homepage.goto() homepage.enter_name(home_data['name']) homepage.enter_email(home_data['email']) homepage.enter_password(home_data['password']) homepage.select_love_ice_cream(home_data['love_ice_cream']) homepage.select_gender(home_data['gender']) homepage.select_employment_status(home_data['status']) homepage.enter_date_of_birth(home_data['birthdate']) homepage.click_submit_button() # Verify data is shown on the UI assert homepage.get_text_from_input( HomepageLocators.NAME_FIELD) == home_data['name'] assert homepage.get_text_from_input( HomepageLocators.EMAIL_FIELD) == home_data['email'] assert homepage.get_love_ice_cream() == home_data['love_ice_cream'] assert homepage.get_text_from_input( HomepageLocators.GENDER_SELECT) == home_data['gender'] assert homepage.get_employment_status() == home_data['status'] assert homepage.get_text_from_input( HomepageLocators.DOB_FIELD) == home_data['birthdate'].strftime( '%Y-%m-%d') assert HomeData.SUCCESS_TEXT_EXPECTED in homepage.get_success_text()
def test_update_basic_information(self, base_url, selenium, ldap, counter_api, token): home_page = Homepage(base_url, selenium) two_fa = home_page.login_with_ldap(ldap['email'], ldap['password']) two_fa.enter_passcode(conftest.passcode(ldap['secret_seed'], conftest.increase_otp_counter(counter_api))) while two_fa.is_error_message_displayed: two_fa.enter_passcode(conftest.passcode(ldap['secret_seed'], conftest.increase_otp_counter(counter_api))) settings_page = home_page.header.click_settings_menu_item() profile_page = settings_page.profile existing_username = profile_page.username existing_full_name = profile_page.full_name new_username = '******'.format(str(uuid.uuid4())[:10]) new_first_name = 'FirstName{0}'.format(str(uuid.uuid4())[:10]) new_last_name = 'LastName{0}'.format(str(uuid.uuid4())[:10]) new_full_name = '{0} {1}'.format(new_first_name, new_last_name) profile_page.set_username(new_username) profile_page.sef_full_name(new_full_name) profile_page.click_update_basic_information() time.sleep(8) api = token['api'] user_logs = requests.get(api, headers={'Authorization': 'Bearer {0}'.format(conftest.access_token(token))}) assert new_username == json.loads(user_logs.content)['app_metadata']['userName'] assert new_first_name == json.loads(user_logs.content)['app_metadata']['firstName'] assert new_last_name == json.loads(user_logs.content)['app_metadata']['lastName'] assert new_full_name == json.loads(user_logs.content)['app_metadata']['displayName'] # Cleanup profile_page.set_username(existing_username) profile_page.sef_full_name(existing_full_name) profile_page.click_update_basic_information()
def test_select_gender_pronoun(self, selenium, base_url): homepage = Homepage(selenium, base_url).open() homepage.login("email", "password", "secret_seed") profile = homepage.go_to_my_profile() assert profile.is_profile_picture_shown profile.edit_profile_intro() profile.add_gender_pronoun("Test") profile.save_intro()
def test_navigation_to_jobs_page(self): homepage = Homepage(self.driver) homepage.navigate_to_jobs() jobs = Jobs(self.driver) self.assertEqual( jobs.get_tagline_text(), 'We’re looking for curious, nimble and passionate people.', )
def test_edit_first_name(self, selenium, base_url): homepage = Homepage(selenium, base_url).open() profile = homepage.go_to_my_profile() assert profile.is_profile_picture_shown initial_name = profile.name profile.edit_profile_intro() profile.add_first_name("Test") profile.save_intro() assert initial_name != profile.name
def test_edit_alternative_name(self, selenium, base_url): homepage = Homepage(selenium, base_url).open() homepage.login("email", "password", "secret_seed") profile = homepage.go_to_my_profile() assert profile.is_profile_picture_shown initial_alternative_name = profile.alternative_name edit_profile = profile.edit_profile_intro() edit_profile.add_alternative_name("super 88 bau") edit_profile.save_intro() assert initial_alternative_name != profile.alternative_name
def test_edit_fun_job_title(self, selenium, base_url): homepage = Homepage(selenium, base_url).open() homepage.login("email", "password", "secret_seed") profile = homepage.go_to_my_profile() assert profile.is_profile_picture_shown initial_fun_job_title = profile.fun_job_title edit_profile = profile.edit_profile_intro() edit_profile.add_fun_job_title("make fun of bugs") edit_profile.save_intro() assert initial_fun_job_title != profile.fun_job_title
def test_change_privacy_for_first_name(self, selenium, base_url): homepage = Homepage(selenium, base_url).open() homepage.login("email", "password", "secret_seed") profile = homepage.go_to_my_profile() assert profile.is_profile_picture_shown edit_profile = profile.edit_profile_intro() initial_privacy = edit_profile.first_name_privacy edit_profile.set_privacy_for_first_name("Public") edit_profile.save_intro() assert edit_profile.first_name_privacy != initial_privacy
def test_edit_first_name(self, selenium, base_url): homepage = Homepage(selenium, base_url).open() homepage.login("email", "password", "secret_seed") assert homepage.is_user_picture_displayed profile = homepage.go_to_my_profile() assert profile.is_profile_picture_shown initial_name = profile.name edit_profile = profile.edit_profile_intro() edit_profile.add_first_name("Test") edit_profile.save_intro() assert initial_name != profile.name
def display_page(pathname): decache_data() if (pathname == '/cgroup'): return GroupData(groupdata) elif (pathname == '/cguess'): return GuessData(guessdata) elif (pathname == '/about'): return About() else: return Homepage(guessdata, groupdata)
def step_impl(context): """Verifications""" """Verify that user is on homepage""" homepage = Homepage(context.driver) expected_title = Data.HOMEPAGE_TITLE actual_title = homepage.get_title() assert expected_title == actual_title, "Wrong title! Got: %r" % actual_title """Verify that newly registrated user is logged""" expected_user_fullname = Property.FIRST_NAME + ' ' + Property.LAST_NAME actual_user_fullname = homepage.get_user_fullname_from_topbar() assert expected_user_fullname == actual_user_fullname, "Wrong fullname! Got: %r" % actual_user_fullname context.driver.quit()
def test_update_tshirt_size(self, base_url, selenium, ldap, counter_api, token): home_page = Homepage(base_url, selenium) two_fa = home_page.login_with_ldap(ldap['email'], ldap['password']) two_fa.enter_passcode(conftest.passcode(ldap['secret_seed'], conftest.increase_otp_counter(counter_api))) while two_fa.is_error_message_displayed: two_fa.enter_passcode(conftest.passcode(ldap['secret_seed'], conftest.increase_otp_counter(counter_api))) settings_page = home_page.header.click_settings_menu_item() you_and_mozilla_page = settings_page.you_and_mozilla new_tshirt_size = random.choice(you_and_mozilla_page.tshirt_sizes_list) you_and_mozilla_page.select_tshirt_size(new_tshirt_size) you_and_mozilla_page.click_update_tshirt_size() time.sleep(8) api = token['api'] user_logs = requests.get(api, headers={'Authorization': 'Bearer {0}'.format(conftest.access_token(token))}) assert new_tshirt_size == json.loads(user_logs.content)['app_metadata']['shirtSize']
def test_logout(self): try: driver = self.driver homepage = Homepage(driver) homepage.click_welcome() homepage.click_Logout() x = driver.title assert x == "ORANGEeHRM" except AssertionError as error: print("Assertion error occurred") print(error) currTime = moment.now().strftime("%d-%m-%Y_%H-%M-%S") testName = utils.whoami() screenshotName = testName + "_" + currTime allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) driver.get_screenshot_as_file( "C:/Users/manikandan/PycharmProjects/AutomationFramework_1/screenshots/" + screenshotName + ".png") raise except: print("There was an exception") currTime = moment.now().strftime("%d-%m-%Y_%H-%M-%S") testName = utils.whoami() screenshotName = testName + "_" + currTime allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) driver.get_screenshot_as_file( "C:/Users/manikandan/PycharmProjects/AutomationFramework_1/screenshots/" + screenshotName + ".png") raise else: print("No exceptions occurred") finally: print("This block will always execute and Close DB")
def test_addtocart(self): driver = self.driver driver.get("http://demo.automationtesting.in/") titleoflandingPage = driver.title print(titleoflandingPage) land = LandingPage(driver) land.skipsignin() registerpage = driver.title print(registerpage) self.assertNotEqual(titleoflandingPage,registerpage,"page didnt change") time.sleep(5) practice = RegistrationPage(driver) practice.click_practicetest() time.sleep(5) practicesite =driver.title print(practicesite) self.assertEqual("Automation Practice Site",practicesite,"Both title matches") x= Homepage(driver) x.select_seleniumruby() y =Productpage(driver) y.click_add() driver.get_screenshot_as_file("/Users/sumit/Desktop/CACC Barsha/DemoautomationtestingRegistration/screenshots/addtocart.png") c =Productpage(driver) c.click_cart() co =CheckoutPage(driver) co.click_checkout() b =BillingPage(driver) b.enter_firstname("Brish") b.enter_lastname("Cool") b.enter_Email("*****@*****.**") b.enter_phoneno("6758972345") b.enter_country("Canada") b.enter_streetname("167 luella cres") b.enter_townname("Brampton") b.select_province("Ontario") #driver.find_element_by_xpath("//span[@id='select2-chosen-2']").click() b.enter_postalcode("l7a3h9") b.select_casondelivery() time.sleep(5) b.place_order() time.sleep(10) driver.get_screenshot_as_file("/Users/sumit/Desktop/CACC Barsha/DemoautomationtestingRegistration/screenshots/Orderplaced.png")
def test_update_groups(self, base_url, selenium, ldap, counter_api, token): home_page = Homepage(base_url, selenium) two_fa = home_page.login_with_ldap(ldap['email'], ldap['password']) two_fa.enter_passcode(conftest.passcode(ldap['secret_seed'], conftest.increase_otp_counter(counter_api))) while two_fa.is_error_message_displayed: two_fa.enter_passcode(conftest.passcode(ldap['secret_seed'], conftest.increase_otp_counter(counter_api))) settings_page = home_page.header.click_settings_menu_item() groups = settings_page.groups groups_page = groups.click_find_group_link() new_group_name = 'group-{0}'.format(str(uuid.uuid4())[:10]) groups_page.create_group(new_group_name) time.sleep(8) api = token['api'] user_logs = requests.get(api, headers={'Authorization': 'Bearer {0}'.format(conftest.access_token(token))}) assert '{0}{1}'.format('mozilliansorg_', new_group_name) in json.loads(user_logs.content)['app_metadata']['groups'] # Cleanup groups_page.check_delete_aknowledgement() groups_page.click_delete_group()
def test_logout(self): try: driver = self.driver home = Homepage(driver) home.click_welcome() home.click_logout() x = driver.title assert x == "OrangeHRM" except AssertionError as Error: print("Assertion Error Occured") currTime = moment.now().strftime("%d-%m-%Y_%H-%M-%S") testName = util.whoami() screenshotName = testName + "_" + currTime allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) driver.get_screenshot_as_file( "C:/Users/vijayago/PycharmProjects/Automation_Framework1/screenshots/" + screenshotName + ".png") print(Error) raise except: print("There was an exception") currTime = moment.now().strftime("%d-%m-%Y_%H-%M-%S") testName = util.whoami() screenshotName = testName + "_" + currTime allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) driver.get_screenshot_as_file( "C:/Users/vijayago/PycharmProjects/Automation_Framework1/screenshots/" + screenshotName + ".png") else: print("There was no Error") finally: print("Final block executed")
def test_logout(self,test_setup): try: home_obj = Homepage(driver) home_obj.click_welcome() home_obj.click_logout() x= driver.title assert x== "OrangeHRM" except AssertionError as error: print("Assertionerror") print(error) raise except: print("there is an exception") raise else: print("No Exception occured") finally: print("Test Completed")
def register_user(self): '''Method for simple user registration (fills only required fields)''' '''Filling step 1 registration fields''' registration_page = RegistrationPage(self._driver).wait_for_registration_page_load() \ .type_first_name(Property.FIRST_NAME).type_last_name(Property.LAST_NAME) \ .type_email(Property.EMAIL).type_password(Property.PASSWORD) \ .type_phone(Property.PHONE).type_date_of_birth(Property.DATE_OF_BIRTH) \ .type_postcode(Property.POSTCODE).type_address1(Property.ADDRESS1).type_city(Property.CITY) '''Filling step 2 registration fields''' registration_step2_page = registration_page.click_next_button().wait_for_registration_page_step2_to_laod() \ .select_shares(Property.SHARES).select_forex(Property.FOREX)\ .select_cfds(Property.CFDS).select_spread_betting(Property.SPREAD_BETTING)\ .select_relevent_experience(Property.FINANCIAL_SECTOR_EXPERIENCE) registration_step2_page.scroll_to_bottom_of_the_page() registration_step2_page\ .select_trading_platform().select_trading_currency(Property.CURRENCY)\ .select_annual_income(Property.APPROX_ANNUAL_INCOME).select_employment_status(Property.EMPOLYMENT_STATUS)\ .select_value_of_assets(Property.APPROX_VALUE_OF_ASSETS)\ .check_i_have_read() '''Accepting terms from policy update''' policy_popup = registration_step2_page.click_finish_button()\ .wait_for_policy_popup_load()\ .click_agree_button() return Homepage(self._driver)
def test_login(self, selenium, base_url): homepage = Homepage(selenium, base_url).open() homepage.login("email", "password", "secret_seed") assert homepage.is_user_picture_displayed
def setUpClass(cls): cls.driver = Chrome(config.CHROMEDRIVER) # chromedriver的文件地址 url = config.HOMEPAGE_URL cls.session = Homepage(driver=cls.driver, url=url) cls.session.fullscreen() cls.m = Menus()
import time from selenium.webdriver import Chrome from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait from pages.homepage import Homepage import config driver = Chrome(config.CHROMEDRIVER) # url = config.HOMEPAGE_URL url = config.EDU_URL #driver.implicitly_wait(30) # 设置隐式等待时长,超过该时间仍未找到元素则跳过操作 page = Homepage(driver=driver, url=url)
def test_login_empty_fields(self): driver = self.driver driver.get(self.getDomain()) Homepage_obj = Homepage(self.driver) Homepage_obj.user_is_on_homepage() Homepage_obj.login_empty_fields()
def test_logout(self): driver = self.driver lp = Homepage(driver) lp.click_navigation_drpdwn() lp.click_logout_btn()
def pre_test_setup(self, env: str, request: FixtureRequest): self.webdriver_client = WebDriverClient() self.homepage = Homepage(env, self.webdriver_client) request.addfinalizer(self.teardown)
def __init__(self, app): self.app = app self.driver = app.driver self.hp_actions = Homepage(driver=self.driver)
def step_impl(context): context.homepage = Homepage(context.browser) context.homepage.navigate_to()