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_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_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_biodiverse_3_fail(self): # Fails due to bad threshold selected homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) experiment_page = homepage.click_experiments() # First create an SDM experiment to work with: new_sdm_page = experiment_page.click_new_sdm_experiment() sdm_experiment_name = create_sdm(self, new_sdm_page) # Click on Experiments experiment_page = homepage.click_experiments() # New projection experiment new_projection_page = experiment_page.click_new_projection_experiment() projection_experiment_name = create_projection(self, sdm_experiment_name, new_projection_page) # Click on Experiments experiment_page = homepage.click_experiments() # New biodiverse experiment new_biodiverse_page = experiment_page.click_new_biodiverse_experiment() # generate a unique identifier for the projection experiment biodiverse_experiment_name = "biodiverse_" + generate_timestamp() new_biodiverse_page.enter_experiment_name(biodiverse_experiment_name) new_biodiverse_page.enter_experiment_description("This is a biodiverse experiment") # select the earlier generated projection experiment new_biodiverse_page.select_source_projection_tab() new_biodiverse_page.select_projection_experiments(projection_experiment_name) new_biodiverse_page.select_species("Phascolarctus cinereus") new_biodiverse_page.select_years("2015") new_biodiverse_page.select_layers("proj_RCP3PD_gfdl-cm20_2015_Phascolarctus.cinereus.tif") # select the configuration tab new_biodiverse_page.select_configuration_tab() new_biodiverse_page.select_threshold_value("KAPPA") new_biodiverse_page.select_cluster_size("20000") # run the experiment new_biodiverse_page.select_run() experiment_result_page = new_biodiverse_page.select_run_experiment() experiment_result_page.wait_for_experiment_to_complete() self.assertTrue(experiment_result_page.has_completed_with_failure()) # Check results self.assertTrue(experiment_result_page.has_results_header(biodiverse_experiment_name)) self.assertTrue(experiment_result_page.has_result_file("proj_RCP3PD_gfdl-cm20_2015_Phascolarctus.cinereus.tif")) self.assertTrue(experiment_result_page.has_result_file("biodiverse.plout")) self.assertTrue(experiment_result_page.has_result_file("pstats.json")) # Cleanup self.delete_experiment(sdm_experiment_name) self.delete_experiment(projection_experiment_name) self.delete_experiment(biodiverse_experiment_name)
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 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_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()
class HomepageActions: def __init__(self, app): self.app = app self.driver = app.driver self.hp_actions = Homepage(driver=self.driver) @allure.step('Expand main menu') def expand_main_menu(self): LOGGER.info("Expand main menu") driver = self.app.driver driver.implicitly_wait(180) menu_hover = self.hp_actions.catalog_header actions = ActionChains(driver) actions.move_to_element(menu_hover).perform() wait(lambda: self.hp_actions.is_element_present("computers_label"), timeout_seconds=20.0) @allure.step('Expand 2nd level menu') def expand_computers_menu(self): LOGGER.info("Expand computers menu") driver = self.app.driver driver.implicitly_wait(180) menu_hover = self.hp_actions.computers_label actions = ActionChains(driver) actions.move_to_element(menu_hover).perform() wait(lambda: self.hp_actions.is_element_present( "laptops_accessories_label"), timeout_seconds=20.0) @allure.step('Expand 3rd level menu') def expand_laptops_menu(self): LOGGER.info("Expand computers menu") driver = self.app.driver driver.implicitly_wait(180) menu_hover = self.hp_actions.laptops_accessories_label actions = ActionChains(driver) actions.move_to_element(menu_hover).perform() wait(lambda: self.hp_actions.is_element_present("laptops_label"), timeout_seconds=20.0) @allure.step('Click laptops label') def click_laptops(self): LOGGER.info("Click 'Ноутбуки' menu item") driver = self.app.driver driver.implicitly_wait(10) actions = ActionChains(driver) laptops_label = self.hp_actions.laptops_label actions.move_to_element(laptops_label).perform() laptops_label.click()
def test_upload_species_dataset(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() upload_page = datasets_page.select_dataset_upload() upload_page = upload_page.select_dataset_type("Species Dataset") upload_page.upload_file(os.getcwd() + "test.csv") upload_page.enter_dataset_title("species_dataset" + generate_timestamp()) upload_page.enter_dataset_description("bleh") upload_page.enter_scientific_name("bleh") upload_page.enter_taxon_id("bluh") upload_page.enter_common_name("bloop") upload_page.agree_to_terms_and_conditions() upload_page.submit()
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_upload_futureclimate_layer(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() upload_page = datasets_page.select_dataset_upload() upload_page = upload_page.select_dataset_type("Future Climate Layer") upload_page.upload_file(os.getcwd() + "test.csv") upload_page.enter_dataset_title("environmental_layer" + generate_timestamp()) upload_page.enter_dataset_description("blurp") #upload_page.select_type("continuous") upload_page.select_resolution("30\" (~1km)") upload_page.enter_start_date(1, 1, 2000, "wow") upload_page.enter_end_date(2, 2, 2001, "weo") upload_page.select_emission_scenario("RCP6") upload_page.select_global_climate_model("Coupled Global Climate Model (CGCM3)") upload_page.agree_to_terms_and_conditions() upload_page.submit()
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_ensemble_SDM(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) experiment_page = homepage.click_experiments() new_sdm_page = experiment_page.click_new_sdm_experiment() experiment_name = "ann_" + generate_timestamp() new_sdm_page.enter_experiment_name(experiment_name) new_sdm_page.enter_experiment_description('Artificial Neural Network with Koala occurrences') new_sdm_page.select_configuration() new_sdm_page.select_sdm_algorithm('Artificial Neural Network') new_sdm_page.select_occurrences() new_sdm_page.select_occurrences_dataset('Koala - Mini occurrence dataset for Redland City') new_sdm_page.select_absences() new_sdm_page.select_absences_dataset('Koala - Mini absence dataset for Redland City') new_sdm_page.select_environment() new_sdm_page.select_current_climate_layers('30" (~1km)', 'Current climate layers for Redland City, 30" (~1km)') new_sdm_page.select_environmental_datasets('Current climate layers for Redland City, 30" (~1km)', 'B14 - Precipitation of Driest Month') new_sdm_page.select_run() experiment_view = new_sdm_page.select_review_start_experiment() # Wait until completion experiment_view.wait_for_experiment_to_complete() self.assertTrue(experiment_view.has_completed_successfully()) experiments_page = experiment_view.click_experiments() new_ensemble_page = experiments_page.click_new_ensemble_experiment() new_ensemble_page.enter_experiment_name("Ensemble_" + generate_timestamp()) new_ensemble_page.enter_experiment_description("A description goes here.") new_ensemble_page.click_source_data() new_ensemble_page.select_dataset_type("sdm") # Choose the SDM from before new_ensemble_page.select_source_experiment(experiment_name) # Choose a file from that SDM experiment: new_ensemble_page.select_available_file("proj_current_Phascolarctus.cinereus.tif") new_ensemble_page.click_run() experiment_results = new_ensemble_page.click_start_experiment() experiment_results.wait_for_experiment_to_complete() self.assertTrue(experiment_results.has_completed_successfully())
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 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_upload_species_trait(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() upload_page = datasets_page.select_dataset_upload() upload_page = upload_page.select_dataset_type("Species Trait") upload_page.upload_file(os.getcwd() + "test.csv") dataset_title = "species_trait_test_" + generate_timestamp() upload_page.enter_dataset_title(dataset_title) upload_page.enter_dataset_description("Description") upload_page.agree_to_terms_and_conditions() datasets_page = upload_page.submit() # Retry while datasets page hasn't loaded. datasets = datasets_page.get_dataset_list() while (len(datasets) == 0): datasets = datasets_page.get_dataset_list() self.assertTrue(dataset_title in datasets)
def test_import_ALA(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() # Get the number of datasets name_list = datasets_page.get_dataset_list() number_of_datasets = len(name_list) # import koala datasets_discover_page = datasets_page.select_dataset_discover() datasets_discover_page.enter_find_species("koala") datasets_discover_page.click_species() # We get redirected back to datasets list page here datasets_page = datasets_discover_page.click_download_species() # Try generate the list of names name_list = datasets_page.get_dataset_list() # The first one should be koala # Make sure we can find koala in the first one' self.assertNotEqual(name_list[0].find("koala"), -1, "Could not find koala dataset") # Check we have one more dataset than before. if number_of_datasets == 20: # The page only shows 100, so check it's 100 still self.assertEqual(len(name_list), 20, "Mismatch number of datasets") else: self.assertEqual(len(name_list), number_of_datasets + 1, "Mismatch number of datasets") # Wait until the first one doesn't have a spinner anymore datasets_page.wait_while_spinner(0) # Refresh the page datasets_page.driver.refresh() # See if the first one still has controls self.assertFalse(datasets_page.check_spinner(0), "Spinner still found when it shouldn't have been!") self.assertTrue(datasets_page.check_controls_exist(0), "Dataset controls not found for this dataset entry")
def test_sharing_experiment(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) experiment_page = homepage.click_experiments() new_sdm_page = experiment_page.click_new_sdm_experiment() experiment_name = "sharing_test_" + generate_timestamp() new_sdm_page.enter_experiment_name(experiment_name) new_sdm_page.enter_experiment_description('Artificial Neural Network with Koala occurrences') new_sdm_page.select_configuration() new_sdm_page.select_sdm_algorithm('Artificial Neural Network') new_sdm_page.select_occurrences() new_sdm_page.select_occurrences_dataset('Koala - Mini occurrence dataset for Redland City') new_sdm_page.select_absences() new_sdm_page.select_absences_dataset('Koala - Mini absence dataset for Redland City') new_sdm_page.select_environment() new_sdm_page.select_current_climate_layers('30" (~1km)', 'Current climate layers for Redland City, 30" (~1km)') new_sdm_page.select_environmental_datasets('Current climate layers for Redland City, 30" (~1km)', 'B14 - Precipitation of Driest Month') new_sdm_page.select_run() experiment_view = new_sdm_page.select_review_start_experiment() # Wait until completion experiment_view.wait_for_experiment_to_complete() self.assertTrue(experiment_view.has_completed_successfully()) # Navigate back to experiment list experiment_page = experiment_view.click_experiments() # Check it's in the list experiments = experiment_page.get_experiment_list() self.assertTrue(experiment_name.lower() in experiments[0], "Could not find SDM experment") # Share it sharing_page = experiment_page.click_share_experiment(experiment_name) sharing_page.check_can_view("Logged-in users") sharing_page.agree_to_terms_and_conditions() sharing_page.select_share_save() # Log out logged_out_homepage = homepage.click_logout() login_page = logged_out_homepage.click_login() login_page.valid_login("testuser", "Pass.123") experiment_page = homepage.click_experiments() experiments = experiment_page.get_experiment_list() self.assertTrue(experiment_name in experiments[0]) # Log out so we can delete it logged_out_homepage = homepage.click_logout("test user") login_page = logged_out_homepage.click_login() login_page.valid_login(self.username, self.password) # Cleanup self.delete_experiment(experiment_name)
class TestHomepage: @pytest.fixture(autouse=True) 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 teardown(self): if hasattr(self, 'webdriver_client'): self.webdriver_client.quit() def test_perform_one_super_basic_search_without_checking_search_results( self): self.homepage.open() job = random.choice(JobType.JOBS) city = random.choice(CityType.CITIES) self.homepage.type_in_what(job) self.homepage.type_in_where(city) self.homepage.click_find_jobs_button()
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_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_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 test_datasets_page(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() self.assertEqual("BCCVL Datasets", datasets_page.title)
def test_experiments_page(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) experiments_page = homepage.click_experiments() self.assertEqual("BCCVL Experiment List", experiments_page.title)
def test_knowledgebase_page(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) knowledge_base_page = homepage.click_knowledge_base() self.assertEqual("BCCVL Knowledge Base", knowledge_base_page.title)
def test_app_login(self): homepage = Homepage(self.driver) self.assertEqual("BCCVL Home", homepage.title) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password)
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 test_sharing_dataset(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() datasets_discover_page = datasets_page.select_dataset_discover() datasets_discover_page.enter_find_species("pig") datasets_discover_page.click_species() # We get redirected back to datasets list page here datasets_page = datasets_discover_page.click_download_species() # Try generate the list of names name_list = datasets_page.get_dataset_list() # The first one should be pig # Make sure we can find pig in the first one' self.assertNotEqual(name_list[0].find("pig"), -1, "Could not find pig dataset") # Wait until the first one doesn't have a spinner anymore datasets_page.wait_while_spinner(0) # Refresh the page datasets_page.driver.refresh() # See if the first one still has controls self.assertFalse(datasets_page.check_spinner(0), "Spinner still found when it shouldn't have been!") self.assertTrue(datasets_page.check_controls_exist(0), "Dataset controls not found for this dataset entry") # click on share. sharing_page = datasets_page.click_share_dataset("pig") sharing_page.check_can_view("Logged-in users") sharing_page.agree_to_terms_and_conditions() datasets_page = sharing_page.select_share_save() logged_in_homepage = datasets_page.click_homepage() # Log out logged_out_homepage = logged_in_homepage.click_logout("admin") login_page = logged_out_homepage.click_login() homepage = login_page.valid_login("testuser", "Pass.123") datasets_page = homepage.click_datasets() datasets = datasets_page.get_dataset_list() self.assertTrue("pig" in datasets[0].lower()) # ************************************# # At this point, we log out of testuser, back into admin # to add a different ALA set to make sure the test # passed not because of a coincidence # ************************************# logged_out_homepage = homepage.click_logout("test user") login_page = logged_out_homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() datasets_discover_page = datasets_page.select_dataset_discover() datasets_discover_page.enter_find_species("platypus") datasets_discover_page.click_species() # We get redirected back to datasets list page here datasets_page = datasets_discover_page.click_download_species() # Try generate the list of names name_list = datasets_page.get_dataset_list() # The first one should be pig # Make sure we can find pig in the first one' self.assertNotEqual(name_list[0].find("platypus"), -1, "Could not find platypus dataset") # Wait until the first one doesn't have a spinner anymore datasets_page.wait_while_spinner(0) # Refresh the page datasets_page.driver.refresh() # See if the first one still has controls self.assertFalse(datasets_page.check_spinner(0), "Spinner still found when it shouldn't have been!") self.assertTrue(datasets_page.check_controls_exist(0), "Dataset controls not found for this dataset entry") # click on share. sharing_page = datasets_page.click_share_dataset("platypus") sharing_page.check_can_view("Logged-in users") sharing_page.agree_to_terms_and_conditions() sharing_page.select_share_save() # Log out logged_out_homepage = homepage.click_logout() login_page = logged_out_homepage.click_login() homepage = login_page.valid_login("testuser", "Pass.123") datasets_page = homepage.click_datasets() datasets = datasets_page.get_dataset_list() self.assertTrue("platypus" in datasets[0].lower())
def step_impl(context): context.homepage = Homepage(context.browser) context.homepage.navigate_to()
def __init__(self, app): self.app = app self.driver = app.driver self.hp_actions = Homepage(driver=self.driver)
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 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()
def test_unsharing_dataset(self): homepage = Homepage(self.driver) login_page = homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() datasets_discover_page = datasets_page.select_dataset_discover() datasets_discover_page.enter_find_species("pig") datasets_discover_page.click_species() # We get redirected back to datasets list page here datasets_page = datasets_discover_page.click_download_species() # Try generate the list of names name_list = datasets_page.get_dataset_list() # The first one should be pig # Make sure we can find pig in the first one' self.assertNotEqual(name_list[0].find("pig"), -1, "Could not find pig dataset") # Wait until the first one doesn't have a spinner anymore datasets_page.wait_while_spinner(0) # Refresh the page datasets_page.driver.refresh() # See if the first one still has controls self.assertFalse(datasets_page.check_spinner(0), "Spinner still found when it shouldn't have been!") self.assertTrue(datasets_page.check_controls_exist(0), "Dataset controls not found for this dataset entry") # click on share. sharing_page = datasets_page.click_share_dataset("pig") sharing_page.check_can_view("Logged-in users") sharing_page.agree_to_terms_and_conditions() sharing_page.select_share_save() # Do this again with a different dataset, so that when we unshare one, we know # which one should be at the top. datasets_discover_page = datasets_page.select_dataset_discover() datasets_discover_page.enter_find_species("rat") datasets_discover_page.click_species() # We get redirected back to datasets list page here datasets_page = datasets_discover_page.click_download_species() # Try generate the list of names name_list = datasets_page.get_dataset_list() # The first one should be pig # Make sure we can find pig in the first one' self.assertNotEqual(name_list[0].find("rat"), -1, "Could not find rat dataset") # Wait until the first one doesn't have a spinner anymore datasets_page.wait_while_spinner(0) # Refresh the page datasets_page.driver.refresh() # See if the first one still has controls self.assertFalse(datasets_page.check_spinner(0), "Spinner still found when it shouldn't have been!") self.assertTrue(datasets_page.check_controls_exist(0), "Dataset controls not found for this dataset entry") # click on share. sharing_page = datasets_page.click_share_dataset("rat") sharing_page.check_can_view("Logged-in users") sharing_page.agree_to_terms_and_conditions() datasets_list = sharing_page.select_share_save() logged_in_homepage = datasets_list.click_homepage() # Log out logged_out_homepage = logged_in_homepage.click_logout() login_page = logged_out_homepage.click_login() homepage = login_page.valid_login("testuser", "Pass.123") datasets_page = homepage.click_datasets() datasets = datasets_page.get_dataset_list() self.assertNotEqual("rat" in datasets[0].lower(), -1, "Wrong dataset in dataset list") # ************************************# # At this point, we log back into admin to unshare pig # ************************************# logged_out_homepage = homepage.click_logout("test user") login_page = logged_out_homepage.click_login() homepage = login_page.valid_login(self.username, self.password) datasets_page = homepage.click_datasets() # Toggle rat. (i.e. unshare) sharing_page = datasets_page.click_share_dataset("rat") sharing_page.check_can_view("Logged-in users") sharing_page.agree_to_terms_and_conditions() datasets_list = sharing_page.select_share_save() logged_in_homepage = datasets_list.click_homepage() logged_out_homepage = logged_in_homepage.click_logout() login_page = logged_out_homepage.click_login() homepage = login_page.valid_login("testuser", "Pass.123") datasets_page = homepage.click_datasets() datasets = datasets_page.get_dataset_list() self.assertNotEqual("pig" in datasets[0].lower(), -1, "Wrong dataset in the dataset list")
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 test_logout(self): driver = self.driver lp = Homepage(driver) lp.click_navigation_drpdwn() lp.click_logout_btn()