def test_logo_size_and_location(self): driver = self.driver login(driver) sleep(2) logo_element = driver.find_element_by_xpath("//*[@id='branding']/img") #css - driver.find_element_by_css_selector("#branding > img") logo_size = logo_element.size # Expected and Actual self.assertEqual(56, logo_size.get("height")) self.assertTrue(logo_size.get("width") == 283) self.assertDictEqual({'width': 283, 'height': 56}, logo_size) window_size = driver.get_window_size() logo_location = logo_element.location top_right_logo_corner_x_location = logo_size.get('width') + logo_location.get('x') # The entire logo (width) fits within the left half of the window self.assertTrue(top_right_logo_corner_x_location < (window_size.get('width') / 2))
def test_empty_password(self): driver = self.driver valid_username = '******' empty_password = '' login(driver, valid_username, empty_password) error_msg = error_message_method(driver) self.assertEqual('Password cannot be empty', error_msg)
def test_create_and_remove_report(self): driver = self.driver report_name = ("rep" + str(randint(1, 3))) self.wait = WebDriverWait(driver, 2) login(driver) # click on the report tab driver.find_element_by_id("menu_pim_viewPimModule").click() driver.find_element_by_id("menu_core_viewDefinedPredefinedReports").click() # click on the Add button driver.find_element_by_css_selector('input[value="Add"]').click() # enter unique Report name self.wait.until( EC.presence_of_element_located((By.ID, "report_report_name"))).send_keys(report_name) # select Criteria = Job Title Select(driver.find_element_by_id("report_criteria_list")).select_by_visible_text("Job Title") driver.find_element_by_id("btnAddConstraint").click() # select display field group = Personal Select(driver.find_element_by_id("report_display_groups")).select_by_visible_text("Personal") driver.find_element_by_id("btnAddDisplayGroup").click() # make sure to check the checkbox and save self.wait.until(EC.visibility_of_element_located((By.ID, 'display_group_1'))).click() driver.find_element_by_id("btnSave").click() # verify that report was created self.assertTrue(is_element_present(driver, By.XPATH, "//td[text()='{0}']/../td[3]/a".format(report_name))) # report was created self.report_name = report_name # run the report driver.find_element_by_xpath("//td[text()='{0}']/../td[3]/a".format(report_name)).click() # verify the report report_header = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.head h1'))).text self.assertEqual('Report Name : {0}'.format(report_name), report_header)
def test_table_sort_by_name(self): driver = self.driver login(driver, password='******') driver.find_element_by_id("menu_pim_viewPimModule").click() driver.find_element_by_xpath("//th[3]/a").click() self.wait.until( EC.presence_of_element_located( (By.XPATH, "//th[3]/a[@class='ASC']"))) previous_name = '' while True: all_name_elements = driver.find_elements_by_xpath("//td[3]/a") for name_element in all_name_elements: current_name = name_element.text self.assertGreaterEqual(current_name, previous_name) previous_name = current_name if not is_element_present(driver, By.CSS_SELECTOR, ".paging.top .desc"): break paging = driver.find_element_by_css_selector( ".paging.top .desc").text paging_parts = paging.split(' of ') if paging_parts[-1] in paging_parts[0]: break driver.find_element_by_css_selector(".paging.top .next a").click()
def test_create_report(self): driver = self.driver wait = self.wait # Login login(driver) # logout logout(driver)
def test_invalid_password(self): driver = self.driver valid_username = '******' invalid_password = '******' login(driver, valid_username, invalid_password) error_msg = error_message_method(driver) self.assertEqual('Invalid credentials', error_msg)
def test_something(self): self.driver = webdriver.Chrome( executable_path= "/Users/admin/Desktop/HRM_Summer2019/browser_drivers/chromedriver") self.driver.get("http://hrm-online.portnov.com/") driver = self.driver login(driver) # Epxected value vs. Actual value self.assertEqual("Welcome Admin", get_welcome_message(driver))
def test_something(self): empId = randint(100000, 999999) user = "******" + str(empId) user_exp_pass = "******" expected_job_title = "QA Manager" expected_employment_status = "Full Time" data = faker.Faker() expected_first_name = data.first_name() expected_last_name = data.last_name() self.wait = WebDriverWait(self.driver, 2) driver = self.driver login(driver) welcome_text = get_welcome_message(driver) self.assertEqual("Welcome Admin", welcome_text) sleep(2) # Click the Add button #driver.find_element_by_id("btnAdd").click() #self.wait.until(expected_conditions.visibility_of_element_located((By.ID, "btnAdd"))).click() self.wait.until( expected_conditions.presence_of_element_located( (By.ID, "btnAdd"))).click() # todo SS may need to come back later # Enter First Lastname driver.find_element_by_id("firstName").send_keys(expected_first_name) driver.find_element_by_id("lastName").send_keys(expected_last_name) # Enter and remember the empID driver.find_element_by_id("employeeId").clear() driver.find_element_by_id("employeeId").send_keys(empId) driver.find_element_by_id("chkLogin").click() self.wait.until( expected_conditions.visibility_of_element_located( (By.ID, "user_name"))).send_keys(user) driver.find_element_by_id("user_password").send_keys(user_exp_pass) driver.find_element_by_id("re_password").send_keys(user_exp_pass) # Save the Employee driver.find_element_by_id("btnSave").click() driver.find_element_by_link_text("Job").click() # todo SS: may need sleep driver.find_element_by_id("btnSave").click() # todo SS: may need sleep Select(driver.find_element_by_id( "job_job_title")).select_by_visible_text(expected_job_title) Select(driver.find_element_by_id("job_emp_status") ).select_by_visible_text(expected_employment_status) driver.find_element_by_id('btnSave').click() # Go to PIM page driver.find_element_by_id("menu_pim_viewPimModule").click() driver.find_element_by_id("menu_pim_viewEmployeeList").click() # todo may need to do something as well # Search by EmpID driver.find_element_by_id("empsearch_id").send_keys(empId) driver.find_element_by_id("searchBtn").click()
def test_valid_login(self): driver = self.driver login(driver) welcome_text = get_welcome_message(driver) # Expected value vs. Actual value self.assertEqual("Welcome Admin", welcome_text) logout(driver)
def test_create_report(self): report_name = 'EY Report #' + str(random.randint(1, 100)) driver = self.driver login(driver) # go to the reports tab driver.find_element_by_id("menu_pim_viewPimModule").click() driver.find_element_by_id( "menu_core_viewDefinedPredefinedReports").click() # click on the Add button # Enter unique Report Name driver.find_element_by_id("btnAdd").click() self.wait.until( EC.presence_of_element_located( (By.ID, "report_report_name"))).send_keys(report_name) # Select Criteria = Job Title Select(driver.find_element_by_id( "report_criteria_list")).select_by_visible_text("Job Title") driver.find_element_by_id("btnAddConstraint").click() # Select Display Fields Group = Personal Select(driver.find_element_by_id( "report_display_groups")).select_by_visible_text("Personal") driver.find_element_by_id("btnAddDisplayGroup").click() # make sure to check the checkbox and Save driver.find_element_by_id("display_group_1").click() driver.find_element_by_id("btnSave").click() # verify the report was created self.assertTrue( is_element_present(driver, By.XPATH, "//td[text()='{0}']".format(report_name))) # yes a report was created and will require cleanup self.report_name = report_name # Run the report driver.find_element_by_xpath( "//td[text()='{0}']/../td[3]/a".format(report_name)).click() # verify the report works report_header = self.wait.until( EC.presence_of_element_located((By.CSS_SELECTOR, '.head h1'))).text self.assertEqual('Report Name : {0}'.format(report_name), report_header)
def test_create_report(self): driver = self.driver wait = self.wait # variables: report_name = "DC report: "+ str(randint(1,100)) # Login login(driver) # go to the report tub driver.find_element(By.ID, 'menu_pim_viewPimModule').click() wait.until(expected_conditions.presence_of_element_located((By.ID, 'menu_core_viewDefinedPredefinedReports'))).click() # Click on the add button driver.find_element(By.ID, "btnAdd").click() # Enter unique report name wait.until(expected_conditions.presence_of_element_located((By.ID, 'report_report_name'))).send_keys(report_name) # Select criteria = job title Select(driver.find_element(By.ID, 'report_criteria_list')).select_by_visible_text('Job Title') #select_by_value('job_title') driver.find_element(By.ID,'btnAddConstraint').click() # select display field group = personal Select(driver.find_element(By.ID, 'report_display_groups')).select_by_visible_text('Personal ') driver.find_element(By.ID, 'btnAddDisplayGroup').click() # make sure to check the ckeckbox and save driver.find_element(By.ID,"display_group_1").click() driver.find_element(By.ID, 'btnSave').click() # verify the report was created #self.assertTrue(self.is_element_present(By.XPATH, "//*[@id='resultTable']//td[text() = '{}']/../td[3]/a".format(report_name))) self.assertTrue(driver.find_element(By.XPATH, "//*[@id='resultTable']//td[text() = '{}']/../td[3]/a".format(report_name))) self.report_name = report_name # Run the report wait.until(expected_conditions.visibility_of_element_located((By.ID, "search_search"))).send_keys(report_name) driver.find_element(By.CLASS_NAME, "searchBtn").click() driver.find_element(By.XPATH, "//*[@id='resultTable']//td[text() = '{}']/../td[3]/a".format(report_name)).click() # verify the report works report_header = driver.find_element(By.CSS_SELECTOR, '.head h1').text self.assertEqual('Report Name : {}'.format(report_name),report_header)
def test_something(self): empId = randint(100000, 999999) expected_job_title = "CEO" expected_employment_status = "Full Time" expected_first_name = "Elon" expected_last_name = "Musk" username = "******" + str(empId) driver = self.driver login(driver) welcome_text = get_welcome_message(driver) # Expected value vs. Actual value self.assertEqual("Welcome Admin", welcome_text) # Click the Add button #self.wait.until(expected_conditions.visibility_of_element_located((By.ID, "btnAdd"))).click() #driver.find_element_by_id("btnAdd").click() WebDriverWait(driver, 2).until( expected_conditions.presence_of_element_located( (By.ID, "btnAdd"))).click() # Enter First and Last name self.wait.until( expected_conditions.visibility_of_element_located( (By.ID, "firstName"))).send_keys(expected_first_name) #driver.find_element_by_id("firstName").send_keys(expected_first_name) driver.find_element_by_id("lastName").send_keys(expected_last_name) # Enter and remember the EmpId driver.find_element_by_id("employeeId").clear() driver.find_element_by_id("employeeId").send_keys(empId) # Click Create Login Details checkbox driver.find_element_by_id("chkLogin").click() # Wait for the fields to be available # Fill them in self.wait.until( expected_conditions.visibility_of_element_located( (By.ID, "user_name"))).send_keys(username) driver.find_element_by_id("user_password").send_keys("password") driver.find_element_by_id("re_password").send_keys("password") # Save the Employee driver.find_element_by_id("btnSave").click() driver.find_element_by_link_text("Job").click() driver.find_element_by_id("btnSave").click() Select(driver.find_element_by_id( "job_job_title")).select_by_visible_text(expected_job_title) Select(driver.find_element_by_id("job_emp_status") ).select_by_visible_text(expected_employment_status) driver.find_element_by_id("btnSave").click() locator = (By.CSS_SELECTOR, ".message.success") self.wait.until( expected_conditions.presence_of_element_located(locator)) # Go to PIM page driver.find_element_by_id("menu_pim_viewPimModule").click() # TODO IP: may need to come back and do "something" # Search by EmpId driver.find_element_by_id("empsearch_id").send_keys(empId) driver.find_element_by_id("searchBtn").click() # Expected: 1 record back #locator2 = (By.XPATH, "//td[3]/a") #self.wait.until(expected_conditions.visibility_of_element_located(locator2)) #lst = len(driver.find_elements_by_xpath("//td[3]/a")) #self.assertTrue(lst == 1) # Expected Correct Name and EmpId firstName = driver.find_element_by_xpath("//td[3]/a").text lastName = driver.find_element_by_xpath("//td[4]/a").text job_title = driver.find_element_by_xpath("//td[5]").text employment_status = driver.find_element_by_xpath("//td[6]").text message = "Expected the table to contains first name '{0}' but instead the value was '{1}'" self.assertEqual(expected_first_name, firstName, message.format(expected_first_name, firstName)) self.assertEqual(expected_last_name, lastName, message.format(expected_last_name, lastName)) self.assertEqual(expected_job_title, job_title, message.format(expected_job_title, job_title)) self.assertEqual(employment_status, employment_status, message.format(employment_status, employment_status)) # Logout logout() # Login login(driver, username) # Check welcome message self.assertEqual("Welcome " + expected_first_name, get_welcome_message(driver)) # Logout logout(driver)
def test_add_employee(self): empId = randint(100000, 999999) expected_job_title = "QA Manager" expected_employment_status = "Full Time" expected_first_name = "James" expected_last_name = "Bond" username = "******" + str(empId) driver = self.driver # this is performed by the setUp within AdminLoginTestCase fixture # login(self.driver) welcome_text = get_welcome_message(driver) self.assertEqual('Welcome Admin', welcome_text) # Click the Add button driver.find_element_by_id("btnAdd").click() # TODO EY: may need to come back and do 'something' # Enter First and Last name driver.find_element_by_id("firstName").send_keys(expected_first_name) driver.find_element_by_id("lastName").send_keys(expected_last_name) # Enter and remember the empId driver.find_element_by_id("employeeId").clear() driver.find_element_by_id("employeeId").send_keys(empId) # click Create Login Details checkbox driver.find_element_by_id("chkLogin").click() # wait for the fields to be available # fill them in self.wait.until( expected_conditions.visibility_of_element_located( (By.ID, "user_name"))).send_keys(username) driver.find_element_by_id("user_password").send_keys('password') driver.find_element_by_id("re_password").send_keys('password') # Save the Employee driver.find_element_by_id("btnSave").click() driver.find_element_by_link_text("Job").click() # TODO EY: may need sleep driver.find_element_by_id("btnSave").click() # TODO EY: may need sleep Select(driver.find_element_by_id( "job_job_title")).select_by_visible_text(expected_job_title) Select(driver.find_element_by_id("job_emp_status") ).select_by_visible_text(expected_employment_status) driver.find_element_by_id("btnSave").click() locator = (By.CSS_SELECTOR, ".message.success") self.wait.until( expected_conditions.presence_of_element_located(locator)) # Go to PIM page driver.find_element_by_id("menu_pim_viewPimModule").click() # TODO EY: may need to come back and do 'something' here as well :P # Search by EmpId driver.find_element_by_id("empsearch_id").send_keys(empId) driver.find_element_by_id("searchBtn").click() # Expected: 1 record back self.assertTrue(len(driver.find_elements_by_xpath("//td[3]/a")) == 1) # Expected Correct Full Name firstName = driver.find_element_by_xpath("//td[3]/a").text lastName = driver.find_element_by_xpath("//td[4]/a").text job_title = driver.find_element_by_xpath("//td[5]").text employment_status = driver.find_element_by_xpath("//td[6]").text message = "Expected the table to contain first name '{0}' but instead the value was '{1}'" self.assertEqual(expected_first_name, firstName, message.format(expected_first_name, firstName)) self.assertEqual(expected_last_name, lastName) self.assertEqual(expected_job_title, job_title) self.assertEqual(expected_employment_status, employment_status) # logout # driver.find_element_by_id('welcome').click() # self.wait.until(expected_conditions.visibility_of_element_located((By.LINK_TEXT, 'Logout'))).click() logout(driver) # login login(driver, username) # check welcome message self.assertEqual('Welcome ' + expected_first_name, get_welcome_message(driver)) # logout # driver.find_element_by_id('welcome').click() # self.wait.until(expected_conditions.visibility_of_element_located((By.LINK_TEXT, 'Logout'))).click() logout(driver)
def test_valid_login(self): driver = self.driver login(driver) welcome_txt = welcome_message_method(driver) # Expected value vs actual value self.assertEqual('Welcome Admin', welcome_txt)
def setUp(self): super(AdminLoginTestCase, self).setUp() self.driver.get("http://hrm-online.portnov.com/") login(self.driver)
def setUp(self): super(AdminLoginTestCase, self).setUp() self.driver.get(DOMAIN) login(self.driver)
def test_add_employee(self): empId = randint(1000000, 9999999) fake = Faker() # first_name = "Taras" first_name = fake.first_name_male() # last_name = "Bulba" last_name = fake.last_name_male() job_title = 'QA Engineer' employment_status = 'Full-time' # Login driver = self.driver wait = self.wait login(driver) welcome_txt = welcome_message_method(driver) # Expected value vs actual value self.assertEqual('Welcome Admin', welcome_txt) driver.find_element_by_link_text('PIM').click() add_btn = (By.CSS_SELECTOR, "#btnAdd") wait.until(expected_conditions.presence_of_element_located(add_btn)) # Click the add buttom # TODO BY: May need to rerurn and do 'something' driver.find_element_by_id('btnAdd').click() # Enter first and last name driver.find_element_by_id('firstName').send_keys(first_name) driver.find_element_by_id('lastName').send_keys(last_name) # Enter and remember empId driver.find_element_by_id('employeeId').clear() driver.find_element_by_id('employeeId').send_keys(empId) # click on create login details checkbox driver.find_element_by_id('chkLogin').click() # wait for the field to be available and fill fields in new_user_name = first_name[0].lower() + last_name[0].lower() + str( empId) new_password = str(empId) + last_name.lower() wait.until( expected_conditions.visibility_of_element_located( (By.ID, 'user_name'))).send_keys(new_user_name) driver.find_element_by_id('user_password').send_keys(new_password) driver.find_element_by_id('re_password').send_keys(new_password) # Save the employee driver.find_element_by_id('btnSave').click() # Add Job left_menu_item = driver.find_element_by_id('sidenav') left_menu_item.find_element_by_link_text('Job').click() driver.find_element_by_id('btnSave').click() Select(driver.find_element_by_id( 'job_job_title')).select_by_visible_text(job_title) Select(driver.find_element_by_id( 'job_emp_status')).select_by_visible_text(employment_status) driver.find_element_by_id('btnSave').click() locator = (By.CSS_SELECTOR, ".message.success") wait.until(expected_conditions.presence_of_element_located(locator)) # Go to PIM page # TODO BY: May need to rerurn and do 'something' as well :P driver.find_element_by_id('menu_pim_viewPimModule').click() serch_form = (By.CSS_SELECTOR, "#employee-information h1") wait.until(expected_conditions.presence_of_element_located(serch_form)) # Search by empId driver.find_element_by_id('empsearch_id').send_keys(empId) driver.find_element_by_id('searchBtn').click() # Expected correct full name first_name_act = driver.find_element_by_xpath('//td[3]/a').text last_name_act = driver.find_element_by_xpath('//td[4]/a').text job_title_act = driver.find_element_by_xpath('//td[5]').text employment_status_act = driver.find_element_by_xpath('//td[6]').text self.assertEqual(first_name, first_name_act) self.assertEqual(last_name, last_name_act) self.assertEqual(job_title, job_title_act) self.assertEqual(employment_status, employment_status_act) # Expected: 1 record back lst = driver.find_elements_by_xpath('//td[4]/a') self.assertTrue(len(lst) == 1) # logout logout(driver) # login with new credentials login(driver, new_user_name, new_password) # check welcome message welcome_txt = welcome_message_method(driver) # Expected value vs actual value self.assertEqual('Welcome {}'.format(first_name), welcome_txt) # logout logout(driver)
def test_something(self): fake_data = Faker() emp_id = randint(100000, 999999) name = fake_data.name() sp_name = name.split() expected_first_name = sp_name[0] expected_last_name = sp_name[1] # Login driver = self.driver login(driver) # assert welcome massage is present welcome_text = get_welcome_message(driver).text self.assertEqual('Welcome Admin', welcome_text) # Click the Add button driver.find_element_by_id("menu_pim_viewPimModule").click() driver.find_element_by_id("btnAdd").click() self.assertEquals("Add Employee", driver.find_element_by_tag_name("h1").text) # Enter First and Last name driver.find_element_by_id("firstName").send_keys(expected_first_name) driver.find_element_by_id("lastName").send_keys(expected_last_name) # Enter the empID driver.find_element_by_id("employeeId").clear() driver.find_element_by_id("employeeId").send_keys(emp_id) # Save the Employee driver.find_element_by_id("btnSave").click() # Go to PIM page driver.find_element_by_id("menu_pim_viewPimModule").click() # Search by empID driver.find_element_by_id("empsearch_id").send_keys(emp_id) driver.find_element_by_id("searchBtn").click() # Expected: 1 record back _first_names = driver.find_elements_by_xpath( "//*[@id='resultTable']/tbody/tr/td[3]/a") self.assertTrue(len(_first_names) == 1) # Edit employee driver.find_element_by_xpath( "//*[@id='resultTable']/tbody/tr/td[3]/a").click() driver.find_element_by_xpath("//*[@id='sidenav']/li[6]/a").click() driver.find_element_by_id("btnSave").click() job_index = randint(0, 5) locator1 = (By.ID, "job_job_title") self.wait.until( expected_conditions.presence_of_element_located(locator1)) Select(driver.find_element_by_id("job_job_title")).select_by_index( job_index) job_title = Select(driver.find_element_by_id( "job_job_title")).first_selected_option.text driver.find_element_by_id("btnSave").click() locator2 = (By.CSS_SELECTOR, ".message.success") self.wait.until( expected_conditions.presence_of_element_located(locator2)) # Expected correct Name and job title name = driver.find_element_by_xpath("//*[@id='profile-pic']/h1").text expected_name = expected_first_name + " " + expected_last_name message = "Expected the table to contain name {0} but instead the value was {1}" self.assertEquals(expected_name, name, message.format(expected_name, name)) self.assertEquals( job_title, Select(driver.find_element_by_id( "job_job_title")).first_selected_option.text)