Beispiel #1
0
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"
Beispiel #2
0
    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")
Beispiel #3
0
 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)
Beispiel #7
0
    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()
Beispiel #8
0
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()
Beispiel #11
0
 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."
Beispiel #14
0
 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
Beispiel #15
0
 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()
Beispiel #16
0
 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.")
Beispiel #17
0
 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.")
Beispiel #18
0
    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."
Beispiel #21
0
 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.")
Beispiel #22
0
 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.")
Beispiel #23
0
 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
Beispiel #26
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.")
Beispiel #29
0
    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())