def test_information_input(driver, browser, mode, device, username, password): """Test the name and postal code input boxes on the checkout page.""" # Proceed to checkout page login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_page.click_cart() cart_page = CartPage(driver) cart_page.click_checkout() # Try to continue without filling out information checkout_page = CheckoutPage(driver) checkout_page.click_continue() assert checkout_page.is_error_message_present() # Input information first_name = "Testy" last_name = "McTest" postal_code = "08221" checkout_page.input_first_name(first_name) checkout_page.input_last_name(last_name) checkout_page.input_postal_code(postal_code) checkout_page.input_payment_details() # Check data was successfully inserted and we can continue assert checkout_page.get_first_name() == first_name assert checkout_page.get_last_name() == last_name assert checkout_page.get_postal_code() == postal_code checkout_page.click_continue() overview_page = OverviewPage(driver) assert overview_page.get_subheader() == "Checkout: Overview"
def setup(self, request): chrome_options = Options() chrome_options.add_argument("--headless") # driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(), chrome_options=chrome_options) # doesn't work in circle ci container self.driver = webdriver.Chrome(options=chrome_options) #self.driver = webdriver.Chrome() self.driver.implicitly_wait(20) self.driver.set_page_load_timeout(20) self.driver.set_script_timeout(20) self.driver.set_window_size(1440, 900) self.login_page = LoginPage(self.driver) self.create_page = CreateIssuePage(self.driver) self.issue_filter_page = SearchIssuePage(self.driver) self.issue_page = IssuePage(self.driver) user = JiraParameters.user password = JiraParameters.password project_key = JiraParameters.project_key self.rest_actions = JiraRestActions(user, password, project_key) def fin(): print("\nPerforming tear down") self.driver.quit() assert self.rest_actions.authenticate().get("success") for key in self.issues.values(): assert self.rest_actions.delete_issue(key).get("success") self.issues = {} request.addfinalizer(fin) print("\nSetup was performed")
def test_login_page_title(self): """ test if page title is correct """ self.login_page = LoginPage(self.driver) title = self.login_page.get_login_page_title(TestData.LOGIN_PAGE_TITLE) assert title == TestData.LOGIN_PAGE_TITLE
class Test (unittest.TestCase): def setUp(self): self.driver=webdriver.Chrome("C:\driver9999\chromedriver.exe") self.driver.maximize_window() self.driver.get("http://localhost:8099/TestMeApp") self.driver.find_element_by_link_text("SignIn").click() # sleep(2000) self.driver.implicitly_wait(10) pass def tearDown(self): self.driver.close() pass def testname(self): self.homepage=LoginPage(self.driver) self.registerpage=RegisterPage(self.driver) self.homepage.clickRegister() self.registerpage.register() self.registerpage.signoff() title=self.homepage.login() self.assertEquals(title,'Home') pass # if __name__ == "__main__": # #import sys;sys.argv = ['', 'Test.testName'] # unittest.main()
def test_space_at_end_of_password(self): page = LoginPage(self.driver) page.enterName(correct_admin_name) page.enterPassword(password_with_space) page.pushButton() sleep(2) page.hasError(testError)
def test_invalid_password(self): page = LoginPage(self.driver) page.enterName(correct_admin_name) page.enterPassword(incorrect_password) page.pushButton() sleep(2) page.hasError(testError)
def test_successful_login(self): users = self.get_users() login_page = LoginPage(self.driver) login_page.login(users[0]["validEmail"], users[0]["validPassword"]) home_page = HomePage(self.driver) assert home_page.is_avatar_displayed()
class TestWidget(BaseTest): def test_widget_page_title(self): self.loginPage = LoginPage(self.driver) widgetPage = self.loginPage.do_login(TestData.USER_NAME, TestData.PASSWORD) title = widgetPage.get_home_page_title(TestData.WIDGET_PAGE_TITLE) assert title == TestData.WIDGET_PAGE_TITLE def test_widget_fl_header(self): self.loginPage = LoginPage(self.driver) widgetPage = self.loginPage.do_login(TestData.USER_NAME, TestData.PASSWORD) fl_header = widgetPage.get_widget_fl_header() assert fl_header == TestData.FL_HEADER def test_widget_ip_header(self): self.loginPage = LoginPage(self.driver) widgetPage = self.loginPage.do_login(TestData.USER_NAME, TestData.PASSWORD) ip_header = widgetPage.get_widget_ip_header() assert ip_header == TestData.IP_HEADER def test_widget_ul_header(self): self.loginPage = LoginPage(self.driver) widgetPage = self.loginPage.do_login(TestData.USER_NAME, TestData.PASSWORD) ul_header = widgetPage.get_widget_ul_header() assert ul_header == TestData.UL_HEADER def test_logout_button(self): self.loginPage = LoginPage(self.driver) widgetPage = self.loginPage.do_login(TestData.USER_NAME, TestData.PASSWORD) widgetPage.button_logout()
def test_login(self): self.loginpage = LoginPage(self.driver) self.loginpage.login(TestData.Email,TestData.Password) self.loginpage.click_on_login() error = self.loginpage.get_error() expected_error = "Invalid details. Please check the Email ID - Password combination." assert error == expected_error
def test_reset_password_check(driver): login_page = LoginPage(driver) login_page.load() login_page.click_forgot_password_link() assert login_page.is_reset_password_text_exists() login_page.fill_reset_password_email_field_and_click_reset_password_button("*****@*****.**") assert login_page.is_we_sent_reset_password_link_exists()
def test_login_button_exist(self): """ test if login button exist """ self.login_page = LoginPage(self.driver) login_button = self.login_page.is_login_button_exist() assert login_button
def test_add_to_cart(driver, browser, mode, device, username, password): """Test adding items to the cart.""" login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_elements = product_page.get_all_product_elements() num_items_in_cart = 0 assert product_page.get_number_cart_items() == num_items_in_cart, "An unexpected item has been found in the cart." # Add products, check mini cart total. for product in product_elements: add_cart_button = product.find_element_by_xpath(product_page.ADD_TO_CART_BUTTON_XPATH) add_cart_button.click() num_items_in_cart += 1 assert num_items_in_cart == product_page.get_number_cart_items(), "An unexpected item has been found in the cart." time.sleep(1) assert add_cart_button.text == Constants.REMOVE # Remove products, check mini cart total. for product in product_elements: remove_cart_button = product.find_element_by_xpath(product_page.ADD_TO_CART_BUTTON_XPATH) remove_cart_button.click() num_items_in_cart -= 1 assert num_items_in_cart == product_page.get_number_cart_items(), "An unexpected item has been found in the cart." time.sleep(1) assert remove_cart_button.text == Constants.ADD_TO_CART
def test_plp_prices(driver, browser, mode, device, username, password): """ Check that the PLP prices match the PDP prices. """ login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_elements = product_page.get_all_product_elements() product_link_map = {} product_price_map = {} for product in product_elements: product_name = product.find_element_by_class_name("inventory_item_name").text product_url = product.find_element_by_xpath(".//div[2]/a").get_attribute("href") product_price = product.find_element_by_class_name("inventory_item_price").text product_link_map[product_name] = product_url product_price_map[product_name] = product_price bad_prices = [] for product, link in product_link_map.items(): driver.get(link) pdp_page = ProductDetailPage(driver) pdp_price = pdp_page.get_price() if pdp_price != product_price_map[product]: print("The price for {0} was not correct: {1}".format(product, pdp_price)) bad_prices.append(product) time.sleep(3) assert len(bad_prices) == 0, str(len(bad_prices)) + " incorrect prices were found on the PLP."
def test_login_wc(self): self.loginPage = LoginPage(self.driver) self.loginPage.do_login(self.USER_NAME, self.USER_PASSWORD) check_client_option_popup = self.loginPage.get_client_option_popup() assert check_client_option_popup self.loginPage.click_on_ok_proceed_button() login_fullname_exist = self.loginPage.get_user_login_fullname() assert login_fullname_exist
def test_guest_can_go_to_login_page(self, browser): link = "http://selenium1py.pythonanywhere.com/" page = MainPage(browser, link) page.open() page.go_to_login_page() login_page = LoginPage(browser, browser.current_url) print() login_page.should_be_login_page()
def test_login_standard_user(self): """ test login with a valid credentials """ self.login_page = LoginPage(self.driver) self.login_page.login(TestData.STANDARD_USER, TestData.PASSWORD) assert not self.login_page.error_message_exists() print("Test finished.")
def test_login_problem_user(self): """ test login to online shop with bugs """ self.login_page = LoginPage(self.driver) self.login_page.login(TestData.PROBLEM_USER, TestData.PASSWORD) assert not self.login_page.error_message_exists() print("Test login_problem_user finished.")
def test_no_details_login(self): login_page = LoginPage(self.driver) login_page.login('', '') utils = Utils(self.driver) utils.wait_for_element(login_page.errorMessage) # animation still not finished, tried to solve it but couldn't, so added a small extra sleep even if not ideal sleep(1) assert 'We didn\'t recognize that email and/or password.' in login_page.get_error_message_text()
def test_remove_from_cart(driver, browser, mode, device, username, password): """Test the cart page's remove from cart button.""" login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_page.add_all_to_cart() product_page.click_cart() cart_page = CartPage(driver) cart_page.remove_all_from_cart()
def test_checkout_all_items(driver, browser, mode, device, username, password): """Test the checkout process with all items on the PLP.""" login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_list_page = ProductListPage(driver) add_to_cart_buttons = product_list_page.get_add_to_cart_buttons() num_items_in_cart = 0 assert product_list_page.get_number_cart_items() == num_items_in_cart, \ "An unexpected item has been found in the cart." # Add products, check mini cart total. for button in add_to_cart_buttons: button.click() num_items_in_cart += 1 assert num_items_in_cart == product_list_page.get_number_cart_items(), \ "An unexpected item has been found in the cart." time.sleep(1) assert button.text == REMOVE assert product_list_page.get_number_cart_items() == len(add_to_cart_buttons), \ "Unexpected number of cart items" product_list_page.click_cart() # Continue to the checkout page from the cart page. cart_page = CartPage(driver) cart_total = cart_page.get_sum_prices() cart_page.click_checkout() # Attempt to checkout without entering a name and postal code. checkout_page = CheckoutPage(driver) checkout_page.click_continue() assert checkout_page.is_error_message_present() # Checkout with valid information first_name = "Testy" last_name = "McTest" postal_code = "08221" checkout_page.input_first_name(first_name) checkout_page.input_last_name(last_name) checkout_page.input_postal_code(postal_code) checkout_page.input_payment_details() assert checkout_page.get_first_name() == first_name assert checkout_page.get_last_name() == last_name assert checkout_page.get_postal_code() == postal_code checkout_page.click_continue() # Check the overview page before completing the order. overview_page = OverviewPage(driver) assert overview_page.get_subheader() == "Checkout: Overview" assert cart_total == overview_page.get_subtotal() overview_page.click_finish() # Check the order confirmation page. order_confirmation_page = OrderConfirmationPage(driver) assert order_confirmation_page.get_subheader() == "Finish" assert product_list_page.get_number_cart_items( ) == 0, "Unexpected item found in cart."
def test_login_performance_glitch_user(self): """ test login locked user to online shop with bad performance """ self.login_page = LoginPage(self.driver) self.login_page.login(TestData.PERFORMANCE_GLITCH_USER, TestData.PASSWORD) assert not self.login_page.error_message_exists() print("Test performance_glitch_user finished.")
def test_login_locked_out_user(self): """ test login with credential locked user """ self.login_page = LoginPage(self.driver) self.login_page.login(TestData.LOCKED_OUT_USER, TestData.PASSWORD) assert self.login_page.error_message_exists() print(self.login_page.get_error_message_text()) print("Test_login_locked_out_user finished successfully.")
def test_login_invalid_credentials(self): """ test login with an invalid credentials """ self.login_page = LoginPage(self.driver) self.login_page.login(TestData.INVALID_USER, TestData.INVALID_PASSWORD) assert self.login_page.error_message_exists() print(self.login_page.get_error_message_text()) print("Test login_incorrect_credentials finished successfully.")
def test_checkout_button(driver, browser, mode, device, username, password): """Test the cart page's checkout button.""" # Note: SauceDemo intentionally allows you to checkout with no items. This case is explicitly # tested in test_cart_page.py in test_checkout_no_items() login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_page.click_cart() cart_page = CartPage(driver) cart_page.click_checkout()
def test_continue_shopping_button(driver, browser, mode, device, username, password): """Test the cart page's continue shopping button.""" login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_page.click_cart() cart_page = CartPage(driver) cart_page.click_continue_shopping() assert len(product_page.get_list_of_product_names()) > 0
def navigateToAccountIntel(self): self.driver.get(self.env['url']) loginpage = LoginPage(self.driver) company_listing = loginpage.login_with(self.env['username'], self.env['password']) property_listing = company_listing.search_and_click( self.testdata['managementCompanies'][0]['managementCompanyName']) property_home = property_listing.click_on_property( self.testdata['properties'][1]['propertyName']) profile_management = property_home.navigate_to_account_intel()
def test_sort_a_to_z(driver, browser, mode, device, username, password): """Test sorting the PLP's products in alphabetical order.""" login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_page.sort_products_a_to_z() product_names = product_page.get_list_of_product_names() for i in range(len(product_names)-1): assert product_names[i] <= product_names[i+1], "Products {0} and {1} are not ordered correctly.".format(product_names[i], product_names[i+1]) print("test_sort_a_to_z finished successfully.")
def test_get_products(driver, browser, mode, device, username, password): """Test getting all product names from the PLP.""" login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_names = product_page.get_list_of_product_names() for name in product_names: print("PLP has product with name: %s" % name) assert len(product_names) > 0, "No products found on the PLP." print("test_get_products finished successfully.")
def test_Login(self): lp = LoginPage(driver=self.driver) for i in range(json_length("data")): # lp.setUserName(parse_data('section_a', 'username_val')) lp.setUserName(parse_json("data", i, 'username')) # lp.setPassword(parse_data('section_a', 'password_val')) lp.setPassword(parse_json("data", i, 'password')) lp.clickLoginButton() dp = DashboardPage(driver=self.driver) try: if lp.verifyErrorMsg(): allure.attach(self.driver.get_screenshot_as_png(), name="FailScreenshot", attachment_type=AttachmentType.PNG) logger.info("Login with ", parse_json("data", i, 'username'), "&", parse_json("data", i, 'password'), "FAILED") write_json("data", i, "status", "FAILED") except NoSuchElementException: write_json("data", i, "status", "PASSED") allure.attach(self.driver.get_screenshot_as_png(), name="PassScreenshot", attachment_type=AttachmentType.PNG) logger.info("Login with ", parse_json("data", i, 'username'), "&", parse_json("data", i, 'password'), "PASSED") dp.clickOnWelcome() dp.clickOnLogout()
def test_sort_high_to_low(driver, browser, mode, device, username, password): """Test sorting the PLP's products by price in descending order.""" login_page = LoginPage(driver) login_page.perform_complete_login(username, password) product_page = ProductListPage(driver) product_page.sort_products_high_to_low() product_prices = product_page.get_list_of_product_prices() for i in range(len(product_prices)-1): assert product_prices[i] >= product_prices[i+1], \ "Products {0} and {1} are not ordered correctly.".format(product_prices[i], product_prices[i+1]) print("test_sort_high_to_low finished successfully.")
def testCreatePost(self): print 'testCreatePost' #登陆 theLoginPage = LoginPage(self.driver,self.loginPageUrl) theLoginPage.login(self.username,self.passwd) # title 由当前时间组成,以免输入固定字符Sam、Test Content title = 'Sam'+time.strftime("%Y-%m-%d %H:%M:%S") #创建 新文章 createPostPage = PostFormPage(self.driver) createPostPage.createPost(title) #进入首页,进行断言 theHomePage = HomePage(self.driver) self.assertEqual(title,theHomePage.getfirstPostLink().text)
def loginExprMobilePasswordNull(self,mobile,password): loginpage = LoginPage(self.getDriver()) loginpage.waitForPreLoad() loginpage.typeMobileInputBox(mobile) loginpage.typeLoginPasswordInputBox(password) loginpage.typeClickOnLoginButton() loginpage.isElementPresent(loginpage.exprMobilePasswordNull,30) assert True == loginpage.isExprMobilePasswordNull() return LoginPage(self.getDriver())
def test_login_good(driver, login, password): login_page = LoginPage(driver, True) profile_page = login_page.login(login, password) assert profile_page.user_navbar profile_page.logout()
def login(self,mobile="18270720030",password="******"): loginpage = LoginPage(self.getDriver()) loginpage.waitForPreLoad() loginpage.typeMobileInputBox(mobile) loginpage.typeLoginPasswordInputBox(password) loginpage.typeClickOnLoginButton() loginpage.isElementPresent(loginpage.profile,30) assert True == loginpage.isProfilePresent() return HomePage(self.getDriver())