def test_imgs_exist(self): try: driver = self.driver # get url from var_info driver.get(var_info.url_login) # take driver into LoginPage login = LoginPage(driver) # get account and password login.enter_login_info(var_info.username_s, var_info.password_s) product = ProductPage(driver) logo = product.product_logo() imgs_display = product.products_img() assert imgs_display == True assert logo.is_displayed() except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "Funtionality_Reports/product_page/product_page_screentshots/product_page_valid_user/" + screenshotName + ".png") raise
def test_about_product_page(self): try: driver = self.driver # get url from var_info driver.get(var_info.url_login) # take driver into LoginPage login = LoginPage(driver) # get account and password login.enter_login_info(var_info.username_s, var_info.password_s) product = ProductPage(driver) general = GeneralPage(driver) product.product_logo() general.drop_down_menu() general.pick_item_from_menu("About") assert driver.current_url == "https://saucelabs.com/" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/product_page/product_page_screentshots/product_page_valid_user/" + screenshotName + ".png") raise
def test_successful_order(self): try: driver = self.driver driver.get(var_info.url_login) driver.refresh() loginpage = LoginPage(driver) loginpage.enter_login_info(var_info.username_p, var_info.password_s) inventory = ProductPage(driver) inventory.click_add_to_cart(2) inventory.product_add_to_cart(4).click() general = GeneralPage(driver) general.cart_sign().click() cartpage = CartPage(driver) continue_button = cartpage.cart_checkout_button() continue_button.click() client_info = ClientInfoPage(driver) client_info.input_first_name("Erica") client_info.input_last_name("Liam") client_info.input_zipcode("78666") client_info.continue_button().click() outside = OutSideElement(driver) cart_qty = outside.cart_qty() overview = CheckoutOverview(driver) finish_button = overview.overview_finish() finish_button.click() successful_order = overview.successfully_placed_order() successful_img = overview.successfully_img() final_cart_qty = outside.cart_qty() assert successful_order.is_displayed() assert successful_order == True assert successful_img == True assert final_cart_qty == None assert driver.current_url == "https://www.saucedemo.com/checkout-complete.html" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/checkout_overview/checkout_overview_screenshots/checkout_overview_problem_user/" + screenshotName + ".png") raise except: print("There is an exception") raise finally: print("Done")
def enter_password(self, password): WebDriverWait(self.driver, 10).until( EC.visibility_of_element_located((By.NAME, 'password'))) WebDriverWait(self.driver, 10).until( EC.element_to_be_clickable((By.NAME, 'password'))) LoginPage(self.driver).password_field().click() LoginPage(self.driver).password_field().send_keys(password)
def test_login_problem_user(self): login_page = LoginPage(self.driver) account = Account('problem_user', Data.PASSWORD) login_page.login(account) products_page = ProductsPage(self.driver) total = products_page.count_broken_images() self.assertEqual(0, total)
def test_invalid_info_with_cancel(self): driver = self.driver driver.get(var_info.url_login) driver.refresh() loginpage = LoginPage(driver) loginpage.enter_login_info(var_info.username_s, var_info.password_s) inventory = ProductPage(driver) inventory.click_add_to_cart(2) inventory.label_add_to_cart("Sauce Labs Fleece Jacket") inventory.cart_sign().click() cartpage = CartPage(driver) continue_button = cartpage.cart_checkout_button() continue_button.click() client_info = ClientInfoPage(driver) client_info.input_first_name("") client_info.input_last_name("") client_info.input_zipcode("") client_info.cancel_button().click() outside = OutSideElement(driver) checkout_button = cartpage.cart_checkout_button() checkout_button.click() cart_qty = outside.cart_qty() assert driver.current_url == "https://www.saucedemo.com/cart.html" assert cart_qty.text == "2"
def test_remove_products_in_checkout(self): driver = self.driver driver.get(var_info.url_login) driver.refresh() loginpage = LoginPage(driver) loginpage.enter_login_info(var_info.username_s, var_info.password_s) inventory = ProductPage(driver) inventory.click_add_to_cart(2) inventory.label_add_to_cart("Sauce Labs Fleece Jacket") inventory.cart_sign().click() cartpage = CartPage(driver) qty_display = cartpage.cart_input_qty() remove = cartpage.cart_product_remove(2) outside = OutSideElement(driver) cart_qty = outside.cart_qty() sum_items = cartpage.to_buy_total() assert sum_items == 1 assert cart_qty.text =="1" assert qty_display.text == "1"
def return_button_from_detail_page(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_s, var_info.password_s) product = ProductPage(driver) product.product_label(3).click() details = DetailsPage(driver) details.back_button().click() assert driver.current_url == "https://www.saucedemo.com/inventory.html" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/product_page/product_page_screentshots/product_page_valid_user/" + screenshotName + ".png") raise
def test_continue_shopping_button(self): driver = self.driver driver.get(var_info.url_login) driver.refresh() loginpage = LoginPage(driver) loginpage.enter_login_info(var_info.username_s, var_info.password_s) inventory = ProductPage(driver) inventory.click_add_to_cart(2) inventory.label_add_to_cart("Sauce Labs Fleece Jacket") inventory.cart_sign().click() cartpage = CartPage(driver) qty_display = cartpage.cart_input_qty() remove = cartpage.cart_product_remove(2) outside = OutSideElement(driver) sum_items = cartpage.to_buy_total() continue_button = cartpage.cart_continue_shopping() continue_button.click() cart_qty = outside.cart_qty() assert cart_qty.text == "1" assert driver.current_url == "https://www.saucedemo.com/inventory.html"
def test_displayed_elements_in_page(self): driver = self.driver driver.get(var_info.url_login) loginpage = LoginPage(driver) loginpage.enter_login_info(var_info.username_s, var_info.password_s) inventory = ProductPage(driver) inventory.cart_sign().click() cartpage = CartPage(driver) title = cartpage.cart_title() qty_label = cartpage.cart_qty_label() cart_desc = cartpage.cart_desc() shopping_button = cartpage.cart_continue_shopping() checkout_button = cartpage.cart_checkout_button() outside = OutSideElement(driver) cart_sign = outside.cart_sign() cart_qty = outside.cart_qty() assert title.text == "Your Cart" assert qty_label.text == "QTY" assert cart_desc.text == "DESCRIPTION" assert cart_sign.is_displayed() assert cart_qty == None assert shopping_button.is_displayed() assert checkout_button.is_displayed()
def test_remove_checkout(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_pe, var_info.password_s) product = ProductPage(driver) product.click_add_to_cart(2) product.click_add_to_cart(6) general = GeneralPage(driver) general.cart_sign().click() cart = CartPage(driver) cart.cart_product_remove(1) items_display = cart.total_product_in_cart() qty = general.cart_qty() assert items_display == 1 assert qty.text == "1" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/cart_page/cart_page_screenshots/cart_page_performance_glitch/" + screenshotName + ".png") raise
def test_login_locked_out_user(self): login_page = LoginPage(self.driver) account = Account('locked_out_user', Data.PASSWORD) login_page.login(account) error_msg = login_page.get_error_message() self.assertIn('Sorry, this user has been locked out.', error_msg)
class LoginPageTest(unittest.TestCase): driver = None @classmethod def setUpClass(cls): cls.driver = driver_init(env["browser"]) @classmethod def tearDownClass(cls): cls.driver.quit() def setUp(self): self.driver.delete_all_cookies() self.loginpage = LoginPage(self.driver) self.loginpage.load() def tearDown(self): take_screenshot(self.driver, self.shortDescription()) def test_login_pass(self): """TestLoginPass""" dashboard_page = self.loginpage.login(admin_user["username"], admin_user["password"]) self.assertIn(dashboard_page.url, dashboard_page.get_url()) @data(*get_data(os.getcwd() + "\\..\\TestData\\login_fail_data.csv")) @unpack def test_login_fail(self, username, password, expected_err_msg): """TestLoginFail""" loginpage = self.loginpage.login(username, password, "fail") self.assertEqual(expected_err_msg, loginpage.get_err_msg())
def test_blank_info_cancel(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) # get account and password login.enter_login_info(var_info.username_p, var_info.password_s) general = GeneralPage(driver) general.cart_sign().click() cartpage = CartPage(driver) time.sleep(3) cartpage.cart_checkout_button().click() info_page = ClientInfoPage(driver) info_page.input_first_name("") info_page.input_last_name("") info_page.input_zipcode("") info_page.cancel_button().click() assert driver.current_url == "https://www.saucedemo.com/cart.html" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/client_info/client_info_screenshots/client_info_page_problem_user/" + screenshotName + ".png") raise
def test_products_add_to_cart_label(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_p, var_info.password_s) product = ProductPage(driver) add_to_cart_label = product.products_add_to_cart_label() assert add_to_cart_label == True except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/product_page/product_page_screentshots/product_page_problem_user/" + screenshotName + ".png") raise
def test_product_labels(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_s, var_info.password_s) product = ProductPage(driver) names_list = product.product_labels() assert isinstance(names_list, list) except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "Funtionality_Reports/product_page/product_page_screentshots/product_page_valid_user/" + screenshotName + ".png") raise
def test_guest_can_go_to_login_page(browser): link = "http://selenium1py.pythonanywhere.com/" page = MainPage(browser, link) page.open() page.go_to_login_page() login_page = LoginPage(browser, browser.current_url) login_page.should_be_login_page()
def reset_from_detail_page(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_s, var_info.password_s) product = ProductPage(driver) product.product_label(4).click() details = DetailsPage(driver) add_to_cart_label = details.check_single_add_to_cart() add_to_cart_label.click() general = GeneralPage(driver) general.drop_down_menu() general.pick_item_from_menu("Reset App State") general.delete_menu().click() add_label = details.check_single_add_to_cart() cart_qty = general.cart_qty() assert cart_qty == None assert add_label.text == "ADD TO CART" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/product_page/product_page_screentshots/product_page_valid_user/" + screenshotName + ".png") raise
def test_img1_in_default_order(self, num): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_pe, var_info.password_s) product = ProductPage(driver) img = product.specific_product_img(num) assert img == True except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/product_page/product_page_screentshots/product_page_performance_glitch/" + screenshotName + ".png") raise
def test_logout(self): print('Inventory Page Test TC_1: Logout from service') self.driver.implicitly_wait(5) lp = LoginPage(self.driver) ip = InventoryPage(self.driver) ip.logout_user() lp.check_login_button_exists()
def enter_email(self, email): WebDriverWait(self.driver, 10).until( EC.visibility_of_element_located((By.NAME, 'email'))) WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.NAME, 'email'))) LoginPage(self.driver).email_field().click() LoginPage(self.driver).email_field().send_keys(email)
def test_blank_last_name(self): driver = self.driver driver.get(var_info.url_login) driver.refresh() loginpage = LoginPage(driver) loginpage.enter_login_info(var_info.username_s, var_info.password_s) inventory = ProductPage(driver) inventory.click_add_to_cart(2) inventory.label_add_to_cart("Sauce Labs Fleece Jacket") inventory.cart_sign().click() cartpage = CartPage(driver) continue_button = cartpage.cart_checkout_button() continue_button.click() client_info = ClientInfoPage(driver) client_info.input_first_name("Cool") client_info.input_last_name("") client_info.input_zipcode("78666") client_info.continue_button().click() sign = client_info.warning_sign() print(sign.text) assert driver.current_url == "https://www.saucedemo.com/checkout-step-one.html" assert sign.text == "Error: Last Name is required"
def test_all_items_product_page(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_s, var_info.password_s) product = ProductPage(driver) general = GeneralPage(driver) product.product_logo() product.click_add_to_cart(1) product.click_add_to_cart(6) product.click_add_to_cart(3) product.click_add_to_cart(6) general.drop_down_menu() general.pick_item_from_menu("All Items") qty = general.cart_qty() assert driver.current_url == "https://www.saucedemo.com/inventory.html" assert qty.text == "2" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/product_page/product_page_screentshots/product_page_valid_user/" + screenshotName + ".png") raise
def test_login_with_invalid_username_password(self): login_page = LoginPage(self.driver) login_page.login(TestData.FAKE_USERNAME, TestData.FAKE_PASSWORD) result_page = ResultPage(self.driver) print(result_page.get_message()) assert "Your password is invalid!" in result_page.get_message()
def test_login_successfully(self): login_page = LoginPage(self.driver) login_page.login(TestData.USERNAME, TestData.PASSWORD) product_page = ProductPage(self.driver) product_page.product_text() print(product_page.product_text()) self.assertEqual(product_page.product_text(), 'Products')
def test_login_with_invalid_username(self): login_page = LoginPage(self.driver) login_page.login(TestData.FAKE_USERNAME, TestData.PASSWORD) result_page = ResultPage(self.driver) print(result_page.get_message()) self.assertIn("Your username is invalid!", result_page.get_message())
def test_no_product_continue_shopping(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_p, var_info.password_s) product = ProductPage(driver) general = GeneralPage(driver) general.cart_sign().click() cart = CartPage(driver) shopping_button = cart.cart_continue_shopping() shopping_button.click() assert driver.current_url == "https://www.saucedemo.com/inventory.html" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/cart_page/cart_page_screenshots/cart_page_problem_user/" + screenshotName + ".png") raise
def test_individual_page_to_cart(self): try: driver = self.driver driver.get(var_info.url_login) login = LoginPage(driver) login.enter_login_info(var_info.username_p, var_info.password_s) product = ProductPage(driver) product.click_product_label(4) general = GeneralPage(driver) individual = DetailsPage(driver) individual.check_single_add_to_cart().click() general.cart_sign().click() cart = CartPage(driver) qty = general.cart_qty() items_display = cart.total_product_in_cart() assert items_display == 1 assert qty.text == "1" assert driver.current_url == "https://www.saucedemo.com/cart.html" except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/cart_page/cart_page_screenshots/cart_page_problem_user/" + screenshotName + ".png") raise
def test_product(self): products = Data.getProducts_json(self) # for index, expected_product in enumerate(products, start=1): # print(expected_product) login_page = LoginPage(self.driver) account = Account('standard_user', Data.PASSWORD) login_page.login(account) products_page = ProductsPage(self.driver) for index, expected_product in enumerate(products, start=1): actual_product = products_page.get_product_info(index) assertion = Assertion() assertion.compare_products(actual_product, expected_product) # total = products_page.get_badge_total() # print(total) # products_page.click_badge_icon() # products_page.click_add_to_cart_button(1) # products_page.click_remove_button(1) # time.sleep(5) # products_page.get_all_products_info() for index, expected_product in enumerate(products, start=1): '"Add & remove all products"' products_page.click_add_to_cart_button(index) self.assertTrue(products_page.does_remove_button_exist(index)) self.assertEqual(1, products_page.get_product_badge()) products_page.click_remove_button(index) self.assertTrue(products_page.does_add_button_exist(index)) self.assertTrue(products_page.is_product_badge_invisible())
def test_info_displayed(self): try: driver = self.driver driver.get(var_info.url_login) driver.refresh() loginpage = LoginPage(driver) loginpage.enter_login_info(var_info.username_p, var_info.password_s) inventory = ProductPage(driver) inventory.click_add_to_cart(2) inventory.product_add_to_cart(4).click() general = GeneralPage(driver) general.cart_sign().click() cartpage = CartPage(driver) continue_button = cartpage.cart_checkout_button() continue_button.click() client_info = ClientInfoPage(driver) client_info.input_first_name("Erica") client_info.input_last_name("Liam") client_info.input_zipcode("78666") client_info.continue_button().click() outside = OutSideElement(driver) cart_qty = outside.cart_qty() overview = CheckoutOverview(driver) qty_item = overview.total_item() payment_info = overview.check_payment_all_info() delivery_info = overview.check_delivery_all_info() item_total, tax, total = overview.total_amount() finish_button = overview.overview_finish() cancel_button = overview.overview_cancel() print(item_total, tax, total) assert qty_item == 2 assert cart_qty.text == "2" assert payment_info.is_displayed() assert delivery_info.is_displayed() assert item_total == "Item total: $59.980000000000004" assert tax == "Tax: $4.80" assert total == "Total: $64.78" assert finish_button.is_displayed() assert cancel_button.is_displayed() except AssertionError as error: print("AssertionError occurred") print(error) cur_time = datetime.datetime.now().strftime("%H-%M-%S_%d_%m_%Y") testName = utils.whoami() screenshotName = testName + "_" + cur_time allure.attach(self.driver.get_screenshot_as_png(), name=screenshotName, attachment_type=allure.attachment_type.PNG) self.driver.get_screenshot_as_file( "/Users/yuchienhuang/Desktop/Swag_labs/Funtionality_Reports/checkout_overview/checkout_overview_screenshots/checkout_overview_problem_user/" + screenshotName + ".png") raise