def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T167' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL = Environments_MYCL.return_environments(env) driver.get(baseURL) driver.maximize_window() # Search for User Account time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id("UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(25) # Take screenshot, save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) # instantiate dashboard d = dashboard(driver) # Add a long wait # Set to 20 time.sleep(1) lp = left_panel(driver) # Set to 15 time.sleep(1) # Navigate to Documents / Confirms current_url = driver.current_url slashparts = current_url.split('/') bbu = build_base_url() home_index_string = bbu.return_home_index_string() nav_url = '/'.join(slashparts[:3]) + '/' + home_index_string screen_to_navigate_to_1 = "documents_confirms" screen_1 = Screens.return_screens(screen_to_navigate_to_1) driver.get(nav_url + screen_1) time.sleep(10) # Take screenshot, save to utilities/test_results/screenshots screenshot_2 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_2" + "_" + control_point_2 + "_" + time_stamp + ".png" saved_screenshot_location_2 = str(screenshot_directory / screenshot_2) driver.get_screenshot_as_file(saved_screenshot_location_2) # Logout # Click User Drop Down (on MYCL Default Page) mdp = MYCL_default_page(driver) mdp.click_user_drop_down() time.sleep(5) # Click Logout mudd = MYCL_user_drop_down(driver) mudd.click_logout() # Take screenshot, save to utilities/test_results/screenshots screenshot_3 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_3" + "_" + control_point_3 + "_" + time_stamp + ".png" saved_screenshot_location_3 = str(screenshot_directory / screenshot_3) driver.get_screenshot_as_file(saved_screenshot_location_3) time.sleep(1) driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T405' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "PROD" baseURL = Environments_BICL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot lp.verify_username_field_displays(test_case_ID, browser, env, time_stamp) lp.login(username, password) lp.click_login_button() time.sleep(10) gp = generic_page(driver) # Take Screenshot 1 screenshot_number = "1" time_stamp_1 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_1, screenshot_number, env, time_stamp_1) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds gp.verify_page_loads(test_case_ID, browser, env, time_stamp) time.sleep(15) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(15) # Click Gain & Loss dp.click_gain_loss_icon() time.sleep(15) # Take Screenshot 2 screenshot_number = "2" time_stamp_2 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_2, screenshot_number, env, time_stamp_2) gl = gain_loss(driver) time.sleep(5) # Click Pending Income gl.click_pending_income() time.sleep(5) # Take Screenshot 3 screenshot_number = "3" time_stamp_3 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_3, screenshot_number, env, time_stamp_3) time.sleep(5) # LOGOUT Section # Force Logout # Logout Workaround # Get current URL string, find base URL # Add logout_string to base_url to force logout current_url = driver.current_url slashparts = current_url.split('/') # Now join back the first three sections 'http:', '' and 'example.com' base_url = '/'.join(slashparts[:3]) + '/' logout_string = "user/login?logout=1" logout_screen = base_url + logout_string # Navigate to Logout Screen driver.get(logout_screen) # Close Browser driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T85' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL = Environments_MYCL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id( "UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(10) # Timeout method for page to load, timeout set to 30 seconds try: driver.set_page_load_timeout(30) except: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise # After Login # Take screenshot, save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) # If Error Button displays, mark errorDisplays "TRUE" # errorDisplays default is FALSE errorDisplays = False # Check if Error Modal Displays if len( driver.find_elements( By.XPATH, "/html/body/div[1]/div/div/div/button")) > 0: errorDisplays = True else: print("No Error") time.sleep(1) # Try / Except Block to test if errorDisplays False # If True, throw exception, take screenshot and FAIL test try: assert errorDisplays is False except AssertionError: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(1) # Navigate to Account \ Activity current_url = driver.current_url slashparts = current_url.split('/') bbu = build_base_url() home_index_string = bbu.return_home_index_string() nav_url = '/'.join(slashparts[:3]) + '/' + home_index_string screen_to_navigate_to = "account_activity" screen = Screens.return_screens(screen_to_navigate_to) driver.get(nav_url + screen) time.sleep(20) act = activity(driver) # Verify Number of Columns on Activity Screen; Should be 13 # act.count_assert_number_columns_on_account_balances_table(test_case_ID, browser, env, time_stamp) # Verify Trailer Column Exists act.verify_Trailer_Column_Exists(test_case_ID, browser, env, time_stamp) time.sleep(3) # Take screenshot, save to utilities/test_results/screenshots screenshot_2 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_2" + "_" + control_point_2 + "_" + time_stamp + ".png" saved_screenshot_location_2 = str(screenshot_directory / screenshot_2) driver.get_screenshot_as_file(saved_screenshot_location_2) time.sleep(5) # Take screenshot, save to utilities/test_results/screenshots screenshot_3 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_3" + "_" + control_point_3 + "_" + time_stamp + ".png" saved_screenshot_location_3 = str(screenshot_directory / screenshot_3) driver.get_screenshot_as_file(saved_screenshot_location_3) # Logout current_url_1 = driver.current_url slashparts_1 = current_url_1.split('/') bbu = build_base_url() logout_string = bbu.return_logout_string() nav_url_1 = '/'.join(slashparts_1[:3]) + '/' + logout_string driver.get(nav_url_1) # Close Browser driver.quit()
## NOTES # Script will execute but hangs before logout -- fixed 5-3-19 K.V. # Script runs in debug mode -- fixed 5-3-19 K.V. # Need to configure contest to run IE Driver -- 5-3-19 # class test_login: # # @pytest.mark.smoke # # def test_login_IE(self, browser, env): test_case = "test_login_IE" # driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # Declare csv directory # csv_directory = str(test_case_directory / test_case) + ".csv" # CSV Reader # Read in username, password and env variables with open(csv_directory) as f: rows = list(csv.reader(f)) test_scenario = rows[3][0] username = rows[3][1] password = rows[3][2] account_number = rows[3][3] # Create a new browser Session
def test_login_chrome(self, browser, env): test_case = "test_login_Chrome" driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # CSV Reader # Read in username, password and env variables with open(csv_directory) as f: rows = list(csv.reader(f)) test_scenario = rows[1][0] username = rows[1][1] password = rows[1][2] account_number = rows[1][3] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) env = "BICL_UAT" ## Select Appropriate URL based on the Environment Value (env) baseURL = Environments.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads, if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id( "UserName") except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_scenario + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) lp.login(username, password) lp.click_login_button() time.sleep(10) # Take screenshot after login and save to utilities/test_results/screenshots screenshot_name = test_scenario + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds try: driver.set_page_load_timeout(30) except: screenshot_name = "FAIL" + "_" + test_scenario + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) time.sleep(3) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(5) # Click Balances # Expected = Balances Screen should load dp.Page_Elements().click_balances_button() # Declare Balances Screen bl = balances(driver) # Verify View Page Drop Down on Balances Screen can be clicked, if not, throw exception and take screenshot try: bl.click_view_page_drop_down() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_scenario + "_" "unable_to_load_balances" + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) time.sleep(3) # Reset view page drop down to "unfocused" mode bl.reset_view_page_drop_down() time.sleep(5) # Declare cash balance value to compare # TODO : Retrieve cash balance value from db or previous session cash_balance_amount = "20.00" # ignore warnings warnings.filterwarnings("ignore") # Parse the current url url = driver.current_url parsed = requests.get(url, verify=False) # Unable to read from table soup = BeautifulSoup(parsed.content, 'html.parser') a = soup.find("table", {"class": "table"}) print(a) time.sleep(3) try: cash_balance_test = bl.read_return_cash_balance_value() except: screenshot_name = "FAIL" + "_" + test_scenario + "_" "cash_balance not found" + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) # Compare Cash Balance value from screen with stored cash balance value try: assert math.isclose(cash_balance_amount, cash_balance_test, rel_tol=0.02) except: screenshot_name = "FAIL" + "_" + test_scenario + "_" "cash_balances do not match" + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) # Logout lg = Logout(driver) lg.click_user_drop_down() time.sleep(2) lg.click_logout() driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T253' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "PROD" baseURL = Environments_MYCL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) gp = generic_page(driver) lp.login(username, password) lp.click_login_button() time.sleep(20) # Take Screenshot 1 screenshot_number = "1" time_stamp_1 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_1, screenshot_number, env, time_stamp_1) time.sleep(5) # Navigate to Gains & Loss / Realized current_url = driver.current_url slashparts = current_url.split('/') bbu = build_base_url() home_index_string = bbu.return_home_index_string() nav_url = '/'.join(slashparts[:3]) + '/' + home_index_string screen_to_navigate_to_1 = "gains_loss_realized" screen_1 = Screens.return_screens(screen_to_navigate_to_1) driver.get(nav_url + screen_1) time.sleep(20) # Take Screenshot 2 screenshot_number = "2" time_stamp_2 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_2, screenshot_number, env, time_stamp_2) time.sleep(20) r = realized(driver) r.verify_Total_Displays(test_case_ID, browser, env, time_stamp) time.sleep(5) # LOGOUT Section # Force Logout # Logout Workaround # Get current URL string, find base URL # Add logout_string to base_url to force logout current_url = driver.current_url slashparts = current_url.split('/') # Now join back the first three sections 'http:', '' and 'example.com' base_url = '/'.join(slashparts[:3]) + '/' logout_string = "user/login?logout=1" logout_screen = base_url + logout_string # Navigate to Logout Screen driver.get(logout_screen) time.sleep(5) # Take Screenshot 3 screenshot_number = "3" time_stamp_3 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_3, screenshot_number, env, time_stamp_3) time.sleep(5) driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # Create a valid date (1 month ago) date_previous_month = dg.return_date_one_month_ago() dv = date_validator() valid_date = dv.return_valid_date(date_previous_month).strftime( "%m/%d/%Y") july_01_date = "07/01/2019" # Error Displays using this date -- SDBICL-2236 # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T49' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "PROD" baseURL = Environments_BICL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id( "UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(10) # Take screenshot after login and save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds try: driver.set_page_load_timeout(30) except: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(10) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(5) # Verify if account icon can be clicked, if not, throw exception and take screenshot try: account_icon = dp.Page_Elements().driver.find_element_by_xpath( "/html/body/div[1]/aside/div/div[2]/ul/li[1]/a/i") account_icon.click() driver.set_page_load_timeout(30) except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(20) # Click HouseKeeping link dp.click_housekeeping_icon() # change to 10 time.sleep(5) # instantiate housekeeping hk = housekeeping(driver) # Click Documents # hk.click_documents() time.sleep(5) # instantiate documents doc = documents(driver) # Input Rep Code doc.input_rep_code(rep_code) time.sleep(20) # Select Open Order Confirms doc.select_open_order_confirms() # change to 20 time.sleep(20) # Input Date doc.input_date(july_01_date) # change to 10 time.sleep(1) # click Search Button doc.click_search_button() # Take screenshot after clicking search button and save to utilities/test_results/screenshots screenshot_2 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_2" + "_" + control_point_2 + "_" + time_stamp + ".png" saved_screenshot_location_2 = str(screenshot_directory / screenshot_2) driver.get_screenshot_as_file(saved_screenshot_location_2) # Set to 20 time.sleep(1) # click Confirms Document # Commented out 8-8-19 - K.V. # doc.click_confirms_document() errorDisplays = False # Check if Error Modal Displays if len( driver.find_elements( By.XPATH, "/html/body/div[1]/div/div/div/button")) > 0: errorDisplays = True else: print("No Error") time.sleep(1) # Try / Except Block to test if errorDisplays False # If True, throw exception, take screenshot and FAIL test try: assert errorDisplays is False except AssertionError: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(15) # Take screenshot after Display of Document and save to utilities/test_results/screenshots screenshot_3 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_3" + "_" + control_point_3 + "_" + time_stamp + ".png" saved_screenshot_location_3 = str(screenshot_directory / screenshot_3) driver.get_screenshot_as_file(saved_screenshot_location_3) time.sleep(15) # Take screenshot BEFORE logout and save to utilities/test_results/screenshots screenshot_4 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_4" + "_" + control_point_4 + "_" + time_stamp + ".png" saved_screenshot_location_4 = str(screenshot_directory / screenshot_4) driver.get_screenshot_as_file(saved_screenshot_location_4) # Logout # Force Logout # Logout Workaround # Get current URL string, find base URL # Add logout_string to base_url to force logout current_url = driver.current_url slashparts = current_url.split('/') # Now join back the first three sections 'http:', '' and 'example.com' base_url = '/'.join(slashparts[:3]) + '/' logout_string = "user/login?logout=1" logout_screen = base_url + logout_string # Navigate to Logout Screen driver.get(logout_screen) # Close Browser driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T216' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # Launch BICL Site # env = "UAT" baseURL_BICL = Environments_BICL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" time.sleep(1) driver.get(baseURL_BICL) driver.maximize_window() # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id("UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(10) # Take screenshot after login and save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds try: driver.set_page_load_timeout(30) except: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(1) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(1) # Click Tools dp.click_tools_icon() tls = tools(driver) time.sleep(1) cl = client_search(driver) # Take screenshot save to utilities/test_results/screenshots screenshot_2 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_2" + "_" + control_point_2 + "_" + time_stamp + ".png" saved_screenshot_location_2 = str(screenshot_directory / screenshot_2) driver.get_screenshot_as_file(saved_screenshot_location_2) # On Tools \ Client Search, input Rep Code cl.input_rep_code(rep_code) # Select "Total Value" From Criteria Column cl.select_value_from_criteria_column() # Select Greater Than 0 cl.select_from_greater_than_less_than_equal() cl.click_rep_code_field() # this will re-focus the mouse time.sleep(5) cl.input_number_value() # Click Go Button cl.click_go_button() time.sleep(5) # verify values in account number column cl.verify_values_in_account_number_column(test_case_ID, browser, env, time_stamp) cl.verify_values_in_name_column(test_case_ID, browser, env, time_stamp) cl.verify_values_in_total_column(test_case_ID, browser, env, time_stamp) # Commenting out phone & business phone verifications cl.verify_values_in_phone_column(test_case_ID, browser, env, time_stamp) cl.verify_values_in_bus_phone_column(test_case_ID, browser, env, time_stamp) cl.verify_values_in_rep_code_column(test_case_ID, browser, env, time_stamp) time.sleep(5) # Take screenshot save to utilities/test_results/screenshots screenshot_3 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_3" + "_" + control_point_3 + "_" + time_stamp + ".png" saved_screenshot_location_3 = str(screenshot_directory / screenshot_3) driver.get_screenshot_as_file(saved_screenshot_location_3) errorDisplays = False # Check if Error Modal Displays if len(driver.find_elements(By.XPATH, "/html/body/div[1]/div/div/div/button")) > 0: errorDisplays = True else: print("No Error") time.sleep(1) # Try / Except Block to test if errorDisplays False # If True, throw exception, take screenshot and FAIL test try: assert errorDisplays is False except AssertionError: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(1) # Take screenshot save to utilities/test_results/screenshots screenshot_4 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_4" + "_" + control_point_4 + "_" + time_stamp + ".png" saved_screenshot_location_4 = str(screenshot_directory / screenshot_4) driver.get_screenshot_as_file(saved_screenshot_location_4) # LOGOUT Section # TODO: Move Logout methods to Logout Class # Force Logout # Logout Workaround # Get current URL string, find base URL # Add logout_string to base_url to force logout current_url = driver.current_url slashparts = current_url.split('/') # Now join back the first three sections 'http:', '' and 'example.com' base_url = '/'.join(slashparts[:3]) + '/' logout_string = "user/login?logout=1" logout_screen = base_url + logout_string # Navigate to Logout Screen driver.get(logout_screen)
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T420' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL = Environments_MYCL.return_environments(env) driver.get(baseURL) driver.maximize_window() # Search for User Account time.sleep(5) # Login to Site lp = LoginPage(driver) gp = generic_page(driver) lp.login(username, password) lp.click_login_button() time.sleep(15) # Take Screenshot 1 screenshot_number = "1" time_stamp_1 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_1, screenshot_number, env, time_stamp_1) # instantiate dashboard d = dashboard(driver) # Add a long wait # Set to 20 time.sleep(10) lp = left_panel(driver) # Set to 15 time.sleep(5) # Click TOOLS on LEFT PANEL lp.click_tools() time.sleep(5) tls = tools(driver) # Click Quotes & Charts tls.click_quotes_charts() time.sleep(10) # Take Screenshot 2 screenshot_number = "2" time_stamp_2 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_2, screenshot_number, env, time_stamp_2) qc = quotes_charts(driver) qc.click_my_watchlist() # switch to opened window driver.switch_to.window(driver.window_handles[1]) time.sleep(5) # Take Screenshot 3 screenshot_number = "3" time_stamp_3 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_3, screenshot_number, env, time_stamp_3) time.sleep(5) # Close new Window driver.close() time.sleep(5) # Switch to First Window (Broker Insight) driver.switch_to.window(driver.window_handles[0]) time.sleep(5) # Logout # Click User Drop Down (on MYCL Default Page) mdp = MYCL_default_page(driver) mdp.click_user_drop_down() time.sleep(2) # Click Logout mudd = MYCL_user_drop_down(driver) mudd.click_logout() # Take Screenshot 4 screenshot_number = "4" time_stamp_4 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_4, screenshot_number, env, time_stamp_4) time.sleep(5) driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # Create a valid date (1 month ago) date_previous_month = dg.return_date_one_month_ago() dv = date_validator() valid_date = dv.return_valid_date(date_previous_month).strftime( "%m-%d-%Y") # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T50' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL = Environments_BICL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id( "UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(10) # Take screenshot after login and save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds try: driver.set_page_load_timeout(30) except: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(10) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(5) # Verify if account icon can be clicked, if not, throw exception and take screenshot try: account_icon = dp.Page_Elements().driver.find_element_by_xpath( "/html/body/div[1]/aside/div/div[2]/ul/li[1]/a/i") account_icon.click() driver.set_page_load_timeout(30) except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(20) # Click HouseKeeping link dp.click_housekeeping_icon() time.sleep(10) # instantiate housekeeping hk = housekeeping(driver) # Click Documents hk.click_documents() # Change to 5-10 time.sleep(5) # instantiate documents doc = documents(driver) # Input Rep Code doc.input_rep_code(rep_code) time.sleep(5) # Select Monthly Statements doc.select_monthly_statements() # Set to 5-10 time.sleep(10) # Select Tax Statements doc.select_tax_statements() # Set to 10 time.sleep(1) # tax statements \ Month Drop Down element ts = tax_statements(driver) # change to 20 - 30 time.sleep(20) # Click Rep Code ts.click_rep_code() # Select month Value # ts.input_month() time.sleep(1) # Input year ts.input_year() # click Search Button doc.click_search_button() # Take screenshot after clicking search button and save to utilities/test_results/screenshots screenshot_2 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_2" + "_" + control_point_2 + "_" + time_stamp + ".png" saved_screenshot_location_2 = str(screenshot_directory / screenshot_2) driver.get_screenshot_as_file(saved_screenshot_location_2) # Set to 15 time.sleep(30) # click Confirms Document doc.click_confirms_document() time.sleep(5) errorDisplays = False # Check if Error Modal Displays if len( driver.find_elements( By.XPATH, "/html/body/div[1]/div/div/div/button")) > 0: errorDisplays = True else: print("No Error") time.sleep(1) # Try / Except Block to test if errorDisplays False # If True, throw exception, take screenshot and FAIL test try: assert errorDisplays is False except AssertionError: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(15) # Take screenshot after Display of Document and save to utilities/test_results/screenshots screenshot_3 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_3" + "_" + control_point_3 + "_" + time_stamp + ".png" saved_screenshot_location_3 = str(screenshot_directory / screenshot_3) driver.get_screenshot_as_file(saved_screenshot_location_3) time.sleep(15) # Take screenshot BEFORE logout and save to utilities/test_results/screenshots screenshot_4 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_4" + "_" + control_point_4 + "_" + time_stamp + ".png" saved_screenshot_location_4 = str(screenshot_directory / screenshot_4) driver.get_screenshot_as_file(saved_screenshot_location_4) # LOGOUT Section # Click User Drop Down (on BICL Default Page) dp.click_user_drop_down() time.sleep(2) # Click Logout udd = user_drop_down(driver) udd.click_logout() # Close Browser driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # Create a valid date (1 month ago) date_previous_month = dg.return_date_one_month_ago() dv = date_validator() valid_date = dv.return_valid_date(date_previous_month).strftime( "%m-%d-%Y") # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T100' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL_Admin = Environments_ADMIN.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" # Assemble Admin URL String with User Creds parse_object = urlparse(baseURL_Admin) fqdn = parse_object.netloc base_url = "https://" + username + ":" + password + "@" + fqdn # Navigate to Admin Page using Admin URL String driver.get(base_url) driver.maximize_window() # Workaround to Navigate to User Admin Screen current_url = driver.current_url slashparts = current_url.split('/') # Now join back the first three sections 'http:', '' and 'example.com' base_url = '/'.join(slashparts[:3]) + '/' manage_user_string = "ManageUser.aspx" manage_user_screen = base_url + manage_user_string # Navigate to Manage User Screen driver.get(manage_user_screen) time.sleep(5) adm = admin(driver) # search for user account adm.enter_user_account_click_search(username) time.sleep(5) adm.click_first_name_tab_3_times() time.sleep(5) # change to System Used to "P3" adm.change_system_used_P3() time.sleep(5) # click Save adm.click_save() time.sleep(5) # Launch BICL Site # env = "UAT" baseURL_BICL = Environments_BICL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" time.sleep(5) # driver.get(baseURL_BICL) # driver.maximize_window() # Assemble Admin URL String with User Creds parse_object = urlparse(baseURL_Admin) fdqm = parse_object.netloc base_url = "https://" + username + ":" + password + "@" + fdqm # Navigate to Admin Page using Admin URL String driver.get(base_url) driver.maximize_window() # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id( "UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(10) # Take screenshot after login and save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds try: driver.set_page_load_timeout(30) except: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(10) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(5) # Confirm that No Content displays in the ACCOUNT INFO Screen # Click Account Info link dp.click_account_info_button() time.sleep(10) ai = account_info(driver) # Account Info Screen -- Should be BLANK # Take screenshot of ACCOUNT INFO and save to utilities/test_results/screenshots screenshot_2 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_2" + "_" + control_point_2 + "_" + time_stamp + ".png" saved_screenshot_location_2 = str(screenshot_directory / screenshot_2) driver.get_screenshot_as_file(saved_screenshot_location_2) time.sleep(1) errorDisplays = False # Check if Error Modal Displays if len( driver.find_elements( By.XPATH, "/html/body/div[1]/div/div/div/button")) > 0: errorDisplays = True else: print("No Error") time.sleep(1) # Try / Except Block to test if errorDisplays False # If True, throw exception, take screenshot and FAIL test try: assert errorDisplays is False except AssertionError: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(1) # LOGOUT Section # TODO: Move Logout methods to Logout Class # Force Logout # Logout Workaround # Get current URL string, find base URL # Add logout_string to base_url to force logout current_url = driver.current_url slashparts = current_url.split('/') # Now join back the first three sections 'http:', '' and 'example.com' base_url = '/'.join(slashparts[:3]) + '/' logout_string = "user/login?logout=1" logout_screen = base_url + logout_string # Navigate to Logout Screen driver.get(logout_screen) # Launch Admin Site driver.get(baseURL_Admin) driver.maximize_window() # Workaround to Navigate to User Admin Screen current_url = driver.current_url slashparts = current_url.split('/') # Now join back the first three sections 'http:', '' and 'example.com' base_url = '/'.join(slashparts[:3]) + '/' manage_user_string = "ManageUser.aspx" manage_user_screen = base_url + manage_user_string # Navigate to Manage User Screen driver.get(manage_user_screen) time.sleep(5) # search for user account adm.enter_user_account_click_search(username) time.sleep(5) adm.click_first_name_tab_3_times() time.sleep(5) # change to System Used to "BETA" adm.change_system_used_BETA() time.sleep(5) # click Save adm.click_save() time.sleep(5) # Launch BICL Site driver.get(baseURL_BICL) driver.maximize_window() # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id( "UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(10) # Take screenshot after login and save to utilities/test_results/screenshots screenshot_3 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_3" + "_" + control_point_3 + "_" + time_stamp + ".png" saved_screenshot_location_3 = str(screenshot_directory / screenshot_3) driver.get_screenshot_as_file(saved_screenshot_location_3) time.sleep(5) dp = default_page(driver) time.sleep(10) # Enter Account Number and click Search dp.enter_account_number_search(account_number) dp.click_account_info_button() time.sleep(10) ai = account_info(driver) # Account Info Screen # Select "Documents" from VIEW Drop Down ai.select_documents() time.sleep(30) ddd = document_drop_down(driver) # Select MONTHLY STATEMENTS ddd.select_monthly_statements() time.sleep(20) # Take screenshot of ACCOUNT INFO and save to utilities/test_results/screenshots screenshot_4 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_4" + "_" + control_point_4 + "_" + time_stamp + ".png" saved_screenshot_location_4 = str(screenshot_directory / screenshot_4) driver.get_screenshot_as_file(saved_screenshot_location_4) # LOGOUT Section # Click User Drop Down (on BICL Default Page) dp.click_user_drop_down() time.sleep(2) # Click Logout udd = user_drop_down(driver) udd.click_logout() # Close Browser driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() date_today = dg.return_date_today() time_today = dg.return_time_today() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T175' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL = Environments_BICL.return_environments(env) driver.get(baseURL) driver.maximize_window() # Search for User Account time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id( "UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(5) # Take screenshot, save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds try: driver.set_page_load_timeout(30) except: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(5) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(1) # Navigate to Order Entry dp.click_order_entry_icon() time.sleep(1) oe = order_entry(driver) time.sleep(3) # Click Mutual Funds oe.click_mutual_funds() mf = mutual_funds(driver) time.sleep(2) # Mutual Funds Screen # Select Sell on Action Drop Down mf.select_sell_from_action_dropdown() time.sleep(2) # Input Sell Quantity in Quantity Field mf.input_value_in_quantity() time.sleep(2) # Input Value in Fund mf.input_value_in_fund(test_data1) time.sleep(2) # Select SHARE from Transaction Type mf.select_share_from_transaction_type_dropdown() time.sleep(2) # Select SOLICITED from Drop Down mf.select_solicited_from_dropdown() time.sleep(2) # Input value in Accepted By mf.input_value_in_accepted_by(username) time.sleep(2) # Input Date Today mf.input_date_today(date_today) time.sleep(2) # Input Time Today mf.input_time_today(time_today) time.sleep(2) # Click Submit mf.click_submit_button() time.sleep(1) # Verify that Questionnaire does not display # Logout # Click User Drop Down (on BICL Default Page) dp.click_user_drop_down() time.sleep(2) # Click Logout udd = user_drop_down(driver) udd.click_logout() # Take screenshot, save to utilities/test_results/screenshots screenshot_4 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_4" + "_" + control_point_4 + "_" + time_stamp + ".png" saved_screenshot_location_4 = str(screenshot_directory / screenshot_4) driver.get_screenshot_as_file(saved_screenshot_location_4) driver.quit()
def test_bICL_ADMIN_TOOL_ROLE_TEMPLATES_Confirm_text_does_not_display( self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T197' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "DEV" baseURL_Admin = Environments_ADMIN.return_environments(env) # Launch Admin Site # driver.get(baseURL_Admin) # driver.maximize_window() # Assemble Admin URL String with User Creds parse_object = urlparse(baseURL_Admin) fdqm = parse_object.netloc base_url = "https://" + username + ":" + password + "@" + fdqm # Navigate to Admin Page using Admin URL String driver.get(base_url) driver.maximize_window() time.sleep(1) # Navigate to Role Templates current_url = driver.current_url slashparts = current_url.split('/') base_url = '/'.join(slashparts[:3]) + '/' time.sleep(1) screen_to_navigate_to_1 = "Role_Templates" screen_1 = Screens.return_screens(screen_to_navigate_to_1) nav_string_1 = base_url + screen_1 driver.get(nav_string_1) time.sleep(10) rt = role_templates(driver) # Select Developer rt.change_role_to_developer() # Scroll Down Page gp = generic_page(driver) gp.scroll_down() # Take screenshot and save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) time.sleep(3) # Checkmark "X" and Save rt.checkmark_x_label() rt.click_update_button() time.sleep(1) # Navigate to Admin current_url_2 = driver.current_url slashparts_2 = current_url_2.split('/') base_url_2 = '/'.join(slashparts_2[:3]) + '/' screen_to_navigate_to_2 = "Users" screen_2 = Screens.return_screens(screen_to_navigate_to_2) nav_string_2 = base_url_2 + screen_2 driver.get(nav_string_2) time.sleep(5) # Navigate to Role Templates driver.get(nav_string_1) time.sleep(5) # Select Developer rt.change_role_to_developer() gp.scroll_down() # Verify that checkmark persists rt.verify_x_label_checked(test_case_ID, browser, env, time_stamp) time.sleep(1) # Take screenshot save to utilities/test_results/screenshots screenshot_2 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_2" + "_" + control_point_2 + "_" + time_stamp + ".png" saved_screenshot_location_2 = str(screenshot_directory / screenshot_2) driver.get_screenshot_as_file(saved_screenshot_location_2) time.sleep(5) # Reset Condition # Uncheck Checkmark and Save # Checkmark "X" and Save rt.checkmark_x_label() rt.click_update_button() time.sleep(5) # Take screenshot save to utilities/test_results/screenshots screenshot_3 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_3" + "_" + control_point_3 + "_" + time_stamp + ".png" saved_screenshot_location_3 = str(screenshot_directory / screenshot_3) driver.get_screenshot_as_file(saved_screenshot_location_3) # Close Browser driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T159' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL = Environments_MYCL.return_environments(env) driver.get(baseURL) driver.maximize_window() gp = generic_page(driver) # Take Screenshot 1 screenshot_number = "1" time_stamp_1 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_1, screenshot_number, env, time_stamp_1) time.sleep(3) mdp = MYCL_default_page(driver) # Verify URL contains HTTPS mdp.validate_https_in_url_address(test_data1, test_case_ID, browser, env, time_stamp) time.sleep(3) # Take Screenshot 2 screenshot_number = "2" time_stamp_2 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_2, screenshot_number, env, time_stamp_2) time.sleep(3) # Close Browser driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T347' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL = Environments_BICL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot lp.verify_username_field_displays(test_case_ID, browser, env, time_stamp) lp.login(username, password) lp.click_login_button() time.sleep(10) gp = generic_page(driver) # Take Screenshot 1 screenshot_number = "1" time_stamp_1 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_1, screenshot_number, env, time_stamp_1) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds gp.verify_page_loads(test_case_ID, browser, env, time_stamp) time.sleep(15) # Click User Drop Down (on BICL Default Page) dp.click_user_drop_down() time.sleep(2) # Click Change Password udd = user_drop_down(driver) udd.click_change_password() time.sleep(2) # Take Screenshot 2 screenshot_number = "2" time_stamp_2 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_2, screenshot_number, env, time_stamp_2) time.sleep(2) # Close Password Modal udd.close_password_modal() time.sleep(2) # LOGOUT Section # Click User Drop Down (on BICL Default Page) dp.click_user_drop_down() udd = user_drop_down(driver) udd.click_logout() # Take Screenshot 3 screenshot_number = "3" time_stamp_3 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_3, screenshot_number, env, time_stamp_3) time.sleep(5) # Close Browser driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T87' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "PROD" baseURL = Environments_BICL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() # Search for User Account time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot try: username_field = lp.Page_Elements().driver.find_element_by_id( "UserName") username_field.click() except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise lp.login(username, password) lp.click_login_button() time.sleep(10) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds try: driver.set_page_load_timeout(30) except: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise time.sleep(1) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(5) # Verify if account icon can be clicked, if not, throw exception and take screenshot try: account_icon = dp.Page_Elements().driver.find_element_by_xpath( "/html/body/div[1]/aside/div/div[2]/ul/li[1]/a/i") account_icon.click() driver.set_page_load_timeout(30) except NoSuchElementException: screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png" saved_screenshot_location = str(screenshot_directory / screenshot_name) driver.get_screenshot_as_file(saved_screenshot_location) raise # Click Notes Button dp.click_notes_button() # Take screenshot, save to utilities/test_results/screenshots screenshot_1 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_1" + "_" + control_point_1 + "_" + time_stamp + ".png" saved_screenshot_location_1 = str(screenshot_directory / screenshot_1) driver.get_screenshot_as_file(saved_screenshot_location_1) time.sleep(3) nm = notes_modal(driver) # click "All Rep Notes" nm.click_all_rep_notes_tab() time.sleep(10) # Take screenshot, save to utilities/test_results/screenshots screenshot_2 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_2" + "_" + control_point_2 + "_" + time_stamp + ".png" saved_screenshot_location_2 = str(screenshot_directory / screenshot_2) driver.get_screenshot_as_file(saved_screenshot_location_2) time.sleep(3) # click on "Account Notes" nm.click_account_notes_tab() time.sleep(3) # Take screenshot, save to utilities/test_results/screenshots screenshot_3 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_3" + "_" + control_point_3 + "_" + time_stamp + ".png" saved_screenshot_location_3 = str(screenshot_directory / screenshot_3) driver.get_screenshot_as_file(saved_screenshot_location_3) time.sleep(3) # Click on "Activity Notes" nm.click_activity_notes_tab() time.sleep(3) # Take screenshot, save to utilities/test_results/screenshots screenshot_4 = test_case_ID + "_" + browser + "_" + env + "_" + "screenshot_4" + "_" + control_point_4 + "_" + time_stamp + ".png" saved_screenshot_location_4 = str(screenshot_directory / screenshot_4) driver.get_screenshot_as_file(saved_screenshot_location_4) time.sleep(5) # LOGOUT Section # Click User Drop Down (on BICL Default Page) dp.click_user_drop_down() time.sleep(2) # Click Logout udd = user_drop_down(driver) udd.click_logout() # Close Browser driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T428' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "PROD" baseURL = Environments_MYCL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) gp = generic_page(driver) lp.login(username, password) lp.click_login_button() time.sleep(10) # Take Screenshot 1 screenshot_number = "1" time_stamp_1 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_1, screenshot_number, env, time_stamp_1) time.sleep(5) # Navigate to Account \ Positions current_url = driver.current_url slashparts = current_url.split('/') bbu = build_base_url() home_index_string = bbu.return_home_index_string() nav_url = '/'.join(slashparts[:3]) + '/' + home_index_string screen_to_navigate_to_1 = "account_positions" screen_1 = Screens.return_screens(screen_to_navigate_to_1) driver.get(nav_url + screen_1) time.sleep(5) # Take Screenshot 2 screenshot_number = "2" time_stamp_2 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_2, screenshot_number, env, time_stamp_2) time.sleep(5) # Logout # Click User Drop Down (on MYCL Default Page) mdp = MYCL_default_page(driver) mdp.click_user_drop_down() time.sleep(5) # Click Logout mudd = MYCL_user_drop_down(driver) mudd.click_logout() time.sleep(5) # Take Screenshot 3 screenshot_number = "3" time_stamp_3 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_3, screenshot_number, env, time_stamp_3) driver.quit()
def test_login_chrome(self, browser, env): driver = browser # Create Time Stamp Variable (using Date Time Generator Class in utilities) dg = date_time_generator() time_stamp = dg.return_time_stamp() # This section reads in values from csv file using Pandas Library # Declare Test Case ID test_case_ID = 'QTML-T4' # Declare csv directory df = pd.read_csv(csv_directory) # print(df) # Select Row where "Test_Case_ID" Column Matches the test_case_ID declared above (Line 31) # This is the row that contains the data values for this test scenario test_case_row = df.loc[df.Test_Case_ID == test_case_ID] # print(test_case_row) # Read in Values from "test_case_row" object test_scenario = test_case_row['Test_Scenario'].values[0] username = test_case_row['User'].values[0] password = test_case_row['Password'].values[0] browser = test_case_row['Browser'].values[0] account_number = test_case_row['account_number'].values[0] rep_code = test_case_row['rep_code'].values[0] test_data1 = test_case_row['test_data1'].values[0] test_data2 = test_case_row['test_data_2'].values[0] control_point_1 = test_case_row['control_point_1'].values[0] control_point_2 = test_case_row['control_point_2'].values[0] control_point_3 = test_case_row['control_point_3'].values[0] control_point_4 = test_case_row['control_point_4'].values[0] # To DEBUG, Uncomment this NEXT line AND Comment lines 13, 15 and 18. Also, SHIFT + TAB lines 17 - 86 (This will remove indents) # driver = webdriver.Chrome(str(CONFIG_PATH / 'chromedriver.exe')) ## Select Appropriate URL based on the Environment Value (env) # env = "UAT" baseURL = Environments_BICL.return_environments(env) # baseURL = "https://beta.bi.dev.wedbus.com" driver.get(baseURL) driver.maximize_window() time.sleep(5) # Login to Site lp = LoginPage(driver) # Verify if page loads (username_field should be clickable), if not, throw exception and take screenshot lp.verify_username_field_displays(test_case_ID, browser, env, time_stamp) lp.login(username, password) lp.click_login_button() time.sleep(10) gp = generic_page(driver) # Take Screenshot 1 screenshot_number = "1" time_stamp_1 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_1, screenshot_number, env, time_stamp_1) dp = default_page(driver) # Timeout method for page to load, timeout set to 30 seconds gp.verify_page_loads(test_case_ID, browser, env, time_stamp) time.sleep(10) # Enter Account Number and click Search dp.enter_account_number_search(account_number) time.sleep(5) # Verify if account icon can be clicked, if not, throw exception and take screenshot dp.verify_account_icon_clickable(test_case_ID, browser, env, time_stamp) # Click Menu Hamburger dp.click_menu_hamburger() time.sleep(5) hm = hamburger_menu(driver) # Click Reports on Hamburger Menu hm.click_reports() time.sleep(20) # Take Screenshot 2 screenshot_number = "2" time_stamp_2 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_2, screenshot_number, env, time_stamp_2) time.sleep(10) # switch to reports window driver.switch_to.window(driver.window_handles[1]) time.sleep(30) # Reports Window # Click Portfolio Performance & click Go repts = reports(driver) repts.select_Portfolio_Performance() # Click Go Button repts.click_go_button() time.sleep(30) # Take Screenshot 3 screenshot_number = "3" time_stamp_3 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_3, screenshot_number, env, time_stamp_3) # Close Reports Window driver.close() # Switch to First Window (Broker Insight) driver.switch_to.window(driver.window_handles[0]) time.sleep(15) # Take Screenshot 4 screenshot_number = "4" time_stamp_4 = dg.return_time_stamp() gp.take_screenshot(test_case_ID, browser, control_point_3, screenshot_number, env, time_stamp_4) time.sleep(5) # LOGOUT Section # Click User Drop Down (on BICL Default Page) dp.click_user_drop_down() time.sleep(2) # Click Logout udd = user_drop_down(driver) udd.click_logout() # Close Browser driver.quit()