def test_001_create_application_submit_uploaded_document(self): #Instantiate an object of LoginPage class and login using provided credential self.loginPage = LoginPage(self.driver) self.loginPage.login() #Instantiate an object of HomePage class and go to Create Application page self.homePage = HomePage(self.loginPage.driver) self.homePage.create_application() #Instantiate an object of CreateApplicationPage class and start to upload documents self.createApplicationPage = CreateEditApplicationPage( self.homePage.driver) # Upload required documents and assert a checkmark when the upload process is finished self.createApplicationPage.upload_document() for locator in checkmark_icon_locators: self.assertTrue(self.createApplicationPage.is_visible(locator)) #Submit the application self.createApplicationPage.submit_application() #Instantiate an object of HomePage class and assert a toaster appear self.homePage = HomePage(self.createApplicationPage.driver) self.assertTrue(self.homePage.is_enabled( Locators.NOTIFICATION_TOASTER))
def test_004_verify_application(self): self.loginPage = LoginPage(self.driver) self.loginPage.login() self.homePage = HomePage(self.loginPage.driver) self.homePage.create_application() self.createApplicationPage = CreateEditApplicationPage(self.homePage.driver) # Upload required documents and check a checkmark when the upload process is finished self.createApplicationPage.upload(Locators.UPLOAD_NRIC_BUTTON, TestData.NRIC_PATH) self.createApplicationPage.is_visible_long(Locators.NRIC_SUCCESS_ICON) #Submit the application self.createApplicationPage.submit_application() #Instantiate an object of HomePage class and check a toaster appear self.homePage = HomePage(self.createApplicationPage.driver) self.homePage.is_enabled(Locators.NOTIFICATION_TOASTER) self.homePage.is_clickable(Locators.CLAIM_APPLICATION_ROW_2) #Go to Claim Officer role and sort the claim list by the latest entries self.homePage.claim_officer_role() self.homePage.sort_by_latest() self.homePage.is_clickable(Locators.CLAIM_APPLICATION_ROW_1) # Go to the latest application details, instantiate an object of # ApplicationPage class and verify the application then assert # it has been verified self.applicationDetailPage = ApplicationDetailPage(self.homePage.driver) self.applicationDetailPage.verify_application() self.applicationDetailPage.is_clickable(Locators.CLAIM_APPLICATION_ROW_2) self.homePage = HomePage(self.applicationDetailPage.driver) self.homePage.sort_by_latest() self.assertTrue(self.homePage.assert_element_text(Locators.CLAIM_APPLICATION_ROW_1_STATUS, TestData.STATUS_VERIFIED))
def test_user_should_be_able_to_delete_item_from_cart(self): self.homePage = HomePage(self.driver) self.homePage.search() self.searchResultsPage = SearchResultsPage(self.homePage.driver) self.searchResultsPage.click_search_result() self.searchResultsPage.driver.switch_to.window( self.searchResultsPage.driver.window_handles[0]) self.productDetailsPage = ProductDetailsPage( self.searchResultsPage.driver) self.productDetailsPage.click_add_to_cart_button() self.subCartPage = SubCartPage(self.productDetailsPage.driver) # click on the Cart's hyperlink to load the cart page self.subCartPage.click_cart_link() # instantiate an object of Cart Page class self.cartPage = CartPage(self.subCartPage.driver) # find the cart count before deleting an item from the cart cartCountBeforeDeletion = int( self.driver.find_element(*Locators.CART_COUNT).text) print(cartCountBeforeDeletion) # delete an item from cart self.cartPage.delete_item() # to assert the item was deleted successfully self.assertTrue( int(self.driver.find_element( *Locators.CART_COUNT).text) < cartCountBeforeDeletion)
def test_user_must_signin_to_checkout(self): self.homePage = HomePage(self.driver) self.homePage.search() self.searchResultsPage = SearchResultsPage(self.homePage.driver) self.searchResultsPage.click_search_result() self.searchResultsPage.driver.switch_to.window( self.searchResultsPage.driver.window_handles[0]) self.productDetailsPage = ProductDetailsPage( self.searchResultsPage.driver) self.productDetailsPage.click_add_to_cart_button() self.subCartPage = SubCartPage(self.productDetailsPage.driver) self.subCartPage.click_cart_link() # instantiate an object of Cart Page class self.cartPage = CartPage(self.subCartPage.driver) # click on Proceed to Checkout button self.cartPage.click_proceed_to_checkout_button() # instantiate an object of SignIn Page class self.signInPage = SignInPage(self.cartPage.driver) # to assert we are in indeed on Sign In Page, first we assert the title of the page self.assertTrue(TestData.SIGN_IN_PAGE_TITLE, self.signInPage.driver.title) # and then we assert for presence of email textbox on the page self.assertTrue( self.signInPage.is_visible( Locators.USER_EMAIL_OR_MOBIL_NO_TEXTBOX))
def login_home(self, sa): self.homepage = HomePage(sa) self.sa = sa self.login.close() self.homepage.show() self.homepage.upload_design_success.connect(self.upload_design) self.homepage.go_error_page.connect(self.show_error_page) self.homepage.go_update_cname_page.connect(self.show_update_cname_page)
def setUp(self): '''该函数主要完成每个测试用例的初始换工作''' url = "http://192.168.1.101:10020" self.driver = CreateDriver.getBrowserDriver() time.sleep(1) self.page = LoginPage.LoginPage(self.driver, url) self.homePage = HomePage.HomePage(self.driver)
def test_add_from_search(self): # Load Home Page self.homepage = HomePage(self.driver) # Add from Search self.homepage.add_from_search() # Assertion status = self.homepage.get_text(Locators.SEARCH_PRODUCT_STATUS) self.assertEqual(status, TestData.ALERT_ADD_FROM_SEARCH)
def test_add_from_details(self): # Load Home Page self.homepage = HomePage(self.driver) # Add from details self.homepage.add_from_details() # Assertion status = self.homepage.get_text(Locators.DETAIL_PRODUCT_STATUS) self.assertEqual(status, TestData.ALERT_ADD_FROM_DETAILS)
def test_002b_login_then_logout(self): self.loginPage = LoginPage(self.driver) self.loginPage.login() self.homePage = HomePage(self.loginPage.driver) self.assertTrue(self.homePage.is_clickable(Locators.CLAIM_APPLICATION_ROW_2)) self.homePage.logout() #Asserting redirection to Login page with Login button is visible self.assertTrue(self.homePage.is_visible(Locators.LOGIN_PAGE_TITLE))
def test_001_addition(self): # Membuat objek HomePage self.homepage = HomePage(self.driver) # Input angka ke kedua field lalu pilih operasi penjumlahan self.homepage.calculation(TestData.DECIMAL_1, TestData.DECIMAL_2, TestData.ADDITION_OP) # Ambil teks result result = self.homepage.get_text(Locators.RESULT) self.assertEqual("3", result)
def test_003_multiplication_dynamic(self): # Membuat objek HomePage self.homepage = HomePage(self.driver) # Input angka ke kedua field lalu pilih operasi perkalian hasil = self.homepage.calculation_dynamic_integer(TestData.MULTIPLICATION_OP) # Ambil teks result result = self.homepage.get_text(Locators.RESULT) self.assertEqual(str(hasil), result)
def test_launch(self): """Test Case untuk launch URL""" # Membuat objek kelas HomePage self.homePage = HomePage(self.driver) # Mengambil page title dari HomePage title = self.homePage.get_title() # Verifikasi title page assert TestData.WEB_TITLE in title
def test_add_from_home(self): # Load Home Page self.homepage = HomePage(self.driver) # Add to Cart (From Home) self.homepage.add_from_home() # Assertion status = self.homepage.get_text(Locators.ADD_FROM_HOME_STATUS) self.assertEqual(status, TestData.ALERT_ADD_FROM_HOME)
def test_002_substraction(self): # Membuat objek HomePage self.homepage = HomePage(self.driver) # Input angka ke kedua field lalu pilih operasi pengurangan self.homepage.calculation(TestData.DECIMAL_1, TestData.DECIMAL_2, TestData.SUBSTRACTION_OP) # Ambil teks result result = self.homepage.get_text(Locators.RESULT) self.assertEqual("1.8", result)
def test_003_multiplication(self): # Membuat objek HomePage self.homepage = HomePage(self.driver) # Input angka ke kedua field lalu pilih operasi perkalian self.homepage.calculation(TestData.DECIMAL_1, TestData.DECIMAL_2, TestData.MULTIPLICATION_OP) # Ambil teks result result = self.homepage.get_text(Locators.RESULT) self.assertEqual("1.44", result)
def test_002_substraction_dynamic(self): # Membuat objek HomePage self.homepage = HomePage(self.driver) # Input angka ke kedua field lalu pilih operasi pengurangan hasil = self.homepage.calculation_dynamic_integer(TestData.SUBSTRACTION_OP) # Ambil teks result result = self.homepage.get_text(Locators.RESULT) self.assertEqual(str(hasil), result)
def test_002_click_pending_application(self): self.loginPage = LoginPage(self.driver) self.loginPage.login() self.homePage = HomePage(self.loginPage.driver) self.homePage.claim_officer_role() self.assertTrue(self.homePage.is_clickable(Locators.CLAIM_APPLICATION_ROW_2)) #Click application with 'Pending Approval' status and assert redirection to Application Detail page self.homePage.verify_application() self.assertTrue(self.homePage.is_visible(Locators.VERIFY_APPLICATION_BUTTON))
def test_004_division(self): # Membuat objek HomePage self.homepage = HomePage(self.driver) # Input angka ke kedua field lalu pilih operasi pembagian self.homepage.calculation(TestData.DECIMAL_1, TestData.DECIMAL_2, TestData.DIVISION_OP) # Ambil teks result result = self.homepage.get_text(Locators.RESULT) self.assertEqual("4", result)
def test_002a_first_time_login_then_logout(self): self.loginPage = LoginPage(self.driver) self.loginPage.login() # Asserting that claim application list is not present self.homePage = HomePage(self.loginPage.driver) self.assertFalse(self.homePage.is_clickable(Locators.CLAIM_APPLICATION_ROW_2)) self.homePage.logout() #Asserting redirection to Login page with Login button is visible self.assertTrue(self.homePage.is_visible(Locators.LOGIN_PAGE_TITLE))
def test_2_user_should_be_able_to_search(self): self.homePage = HomePage(self.driver) # search for the search term on Home Page. # The search term would be picked from TestData.py file self.homePage.search() # instantiate an object of SearchResultsPage class passing in the driver as parameter. # this will allow the newly created object to have access to the browser and perform # webdriver operations. self.searchResultsPage = SearchResultsPage(self.homePage.driver) # assert that the search term indeed return some results. self.assertNotIn(TestData.NO_RESULTS_TEXT, self.searchResultsPage.driver.page_source)
def test_add_from_category(self): # Load Home Page self.homepage = HomePage(self.driver) # Click Category self.homepage.category() # Add to Cart (From Category) self.homepage.add_from_category() # Assertion status = self.homepage.get_text(Locators.CATEGORY_ADD_TO_CART_STATUS) self.assertEqual(status, TestData.ALERT_ADD_FROM_CATEGORY)
def test_001_login_with_claim_officer_role(self): #Instantiate an object of LoginPage class and login using provided credential self.loginPage = LoginPage(self.driver) self.loginPage.login() #Instantiate an object of HomePage class and go to Claim Officer role self.homePage = HomePage(self.loginPage.driver) self.homePage.claim_officer_role() # Assert Claim Applications table is visible and the applications with Pending Approval status # are clickable self.assertTrue(self.homePage.is_clickable(Locators.CLAIM_APPLICATION_ROW_2_APPLICANT_NAME)) #Assert Create New Application is not visible self.assertFalse(self.homePage.is_visible(Locators.CREATE_NEW_APPLICATION))
def test_user_should_be_able_to_search(self): self.homePage = HomePage(self.driver) # search for the search term on Home Page. The search term would be picked from # test data file self.homePage.search() # instantiate an object of SearchResultsPage class passing in the driver as parameter. # this will allow the newly created object to have access to the browser and perform # operations further. self.searchResultsPage = SearchResultsPage(self.homePage.driver) # assert if the search term is present in the title of the Amazon's Search Results Page self.assertIn(TestData.SEARCH_TERM, self.searchResultsPage.driver.title) # assert that the search term indeed return some results. self.assertNotIn(TestData.NO_RESULTS_TEXT, self.searchResultsPage.driver.page_source)
def test_006_edit_application_view_document(self): self.loginPage = LoginPage(self.driver) self.loginPage.login() # Instantiate an object of HomePage class and go to Edit Application page of the first application self.homePage = HomePage(self.loginPage.driver) self.homePage.edit_application() #Instantiate an object of CreateEditApplicationPage class and remove all the documents self.editApplicationPage = CreateEditApplicationPage(self.homePage.driver) # View uploaded documents and assert the checkmarks when all the view process is finished self.editApplicationPage.view_document() for locator in checkmark_icon_locators: self.assertTrue(self.editApplicationPage.is_visible(locator))
def test_send_message_to_cs(self): # Membuat objek homepage self.homepage = HomePage(self.driver) # Klik tombol contact us self.homepage.contactus() # Membuat objek contact page self.contactpage = ContactPage(self.homepage.driver) # Kirim pesan ke CS self.contactpage.send_message_to_cs() # Assertion success_text = self.contactpage.get_text(Locators.CONTACT_ALERT) self.assertEqual(success_text, TestData.CONTACT_SUCCESS_ALERT)
def test_both_field_empty(self): # Membuat objek homepage self.homepage = HomePage(self.driver) # Klik tombol sign in self.homepage.signin() # Membuat objek authentication page self.authenticationpage = AuthenticationPage(self.homepage.driver) self.homepage.click(Locators.SIGN_IN_SUBMIT) # Assertion empty_field_result = self.homepage.get_text( Locators.EMAIL_REQUIRED_ALERT) self.assertEqual(empty_field_result, TestData.ALERT_EMAIL_REQUIRED)
def test_003_create_application_view_uploaded_document(self): self.loginPage = LoginPage(self.driver) self.loginPage.login() self.homePage = HomePage(self.loginPage.driver) self.homePage.create_application() self.createApplicationPage = CreateEditApplicationPage(self.homePage.driver) # Upload required documents and assert a checkmark when the upload process is finished self.createApplicationPage.upload_document() for locator in checkmark_icon_locators: self.assertTrue(self.createApplicationPage.is_visible(locator)) # View uploaded documents and assert the checkmarks when all the view process is finished self.createApplicationPage.view_document() for locator in checkmark_icon_locators: self.assertTrue(self.createApplicationPage.is_visible(locator))
def test_002_create_application_remove_uploaded_document(self): self.loginPage = LoginPage(self.driver) self.loginPage.login() self.homePage = HomePage(self.loginPage.driver) self.homePage.create_application() self.createApplicationPage = CreateEditApplicationPage(self.homePage.driver) # Upload required documents and assert a checkmark when the upload process is finished self.createApplicationPage.upload_document() for locator in checkmark_icon_locators: self.assertTrue(self.createApplicationPage.is_visible(locator)) #Remove the uploaded documents & assert the checkmark disappear from its respective document self.createApplicationPage.remove_document() for locator in checkmark_icon_locators: self.assertFalse(self.createApplicationPage.is_visible(locator))
def test_001_input_empty(self): # Membuat objek HomePage self.homepage = HomePage(self.driver) # Select Operator * self.homepage.select_operator(TestData.ADDITION_OP) # Input 2nd number self.homepage.enter_text(Locators.INPUT_2, TestData.INTEGER_2) # CLick equal sign self.homepage.click(Locators.EQUAL_BUTTON) actual_text = self.homepage.get_text(Locators.RESULT) self.assertEqual("Error: Input value cannot be empty!", actual_text)
def test_login_success(self): # Membuat objek Home Page self.homepage = HomePage(self.driver) # Klik tombol sign in self.homepage.signin() # Membuat objek Authentiaction Page self.authenticationpage = AuthenticationPage(self.homepage.driver) # Isi email dan password dan klik tombol Sign In self.authenticationpage.signin_success() # Assertion header = self.authenticationpage.get_text( Locators.MY_ACCOUNT_PAGE_HEADER) self.assertEqual("MY ACCOUNT", header)