Exemplo n.º 1
0
def login_if_necessary_for_component(TargetPage, responsive_target):
    print("*** login_if_necessary_for_component setup ***")
    print("target page: {0} and target ssize: {1} and".format(TargetPage.name, responsive_target['size_type']))

    if TargetPage.name in cfg.member_only_pages:
        print("*** login required at {}".format(TargetPage.name))
        login_page = LoginPage(responsive_target['driver'])

        login_page.type_text_in_input(locator='email_input', text=cfg.test_user_email_for_profile)
        login_page.type_text_in_input(locator='password_input', text=cfg.test_user_password_for_profile)
        login_page.type_text_in_input(locator='confirm_input', text=cfg.test_user_password_for_profile)
        login_page.click_element('submit_btn')

        home_page = HomePage(responsive_target['driver'], independent=False)

        home_page.wait_for_element('slogan')

    yield None

    if TargetPage.name in cfg.member_only_pages:
        print("*** logout required at {}".format(TargetPage.name))
        home_page = HomePage(responsive_target['driver'], independent=False)
        # home_page.wait_for_element('slogan')

        if responsive_target['size_type'] != 'desktop':
            print("*** desktop size requires open nav menu***")
            home_page.click_element_in_header('menu_toggle_icon', waiting_element_locator=None, animation_duration_sc=cfg.animation_duration_sc)
        home_page.click_element_in_header('logout_menu_link')
Exemplo n.º 2
0
def test_singup_page_should_display_confirm_input_empty_validation_error_when_it_is_focused(
        responsive_target):

    login_page = LoginPage(responsive_target['driver'])

    # open search input
    login_page.click_element('confirm_input')
    # enter text in the input
    assert login_page.does_have_text_in_page('confirm is a required field')
Exemplo n.º 3
0
def test_singup_page_should_route_login_page_when_click_the_link(responsive_target):

    signup_page = SignupPage(responsive_target['driver'])

    # open search input
    signup_page.click_element('login_link')

    login_page = LoginPage(responsive_target['driver'], independent=False)

    assert login_page.does_have_text_in_page('Login')
Exemplo n.º 4
0
def test_should_route_to_login_page_when_click_blogs_link_in_header(
        responsive_target, TargetPage):

    target_page = TargetPage(responsive_target['driver'])

    # click blogs nav item
    target_page.click_element_in_header('login_menu_link')

    # get login page object with current url
    login_page = LoginPage(responsive_target['driver'], independent=False)

    # assert blog list page is correctly loaded
    assert login_page.does_have_text_in_page('Login')
Exemplo n.º 5
0
def test_should_route_to_login_page_when_click_blogs_link_in_header_after_open_menu_bar(
        responsive_target, TargetPage):

    target_page = TargetPage(responsive_target['driver'])

    # click menu toggle icon
    target_page.click_element_in_header(
        'menu_toggle_icon',
        waiting_element_locator=None,
        animation_duration_sc=cfg.animation_duration_sc)

    # click blogs nav item
    target_page.click_element_in_header('blogs_menu_link')

    # get login page object with current url
    login_page = LoginPage(responsive_target['driver'], independent=False)

    # assert blog list page is correctly loaded
    assert login_page.does_have_text_in_page('Login')
Exemplo n.º 6
0
def test_singup_page_should_route_home_page_when_successfully_login(
        responsive_target):

    login_page = LoginPage(responsive_target['driver'])

    login_page.type_text_in_input(locator='email_input',
                                  text=cfg.test_user_email)
    login_page.type_text_in_input(locator='password_input',
                                  text=cfg.test_user_password)
    login_page.type_text_in_input(locator='confirm_input',
                                  text=cfg.test_user_password)

    login_page.click_element('submit_btn')

    home_page = HomePage(responsive_target['driver'], independent=False)

    # if fetch and move pages, you need to wait for fetch done and next page is loaded like below otherwise, selenium can assert before target element is loaded
    home_page.wait_for_element('slogan')

    assert home_page.does_have_text_in_page(
        'Share Your Knowledge and Expand What You Can Do')
Exemplo n.º 7
0
def test_singup_page_should_not_allow_to_submit_when_at_least_one_error(
        responsive_target):

    login_page = LoginPage(responsive_target['driver'])

    # open search input
    login_page.click_element('confirm_input')

    login_page.click_element('submit_btn')

    assert login_page.does_have_text_in_page(
        'please fix validation errors before submit')
Exemplo n.º 8
0
def login(target_driver):
    print("*** login module scope setup ***")
    # set target driver ssize to desktop
    # this is because each driver has its differnt default ssize so make it consistent
    # don't need to worry about modify ssize here, this fixture is called before 'responsive_target'
    # fixture so it is overrided to collect ssize at the fixture.
    target_driver.set_window_size(cfg.ssize_width_tablet, cfg.ssize_height)

    login_page = LoginPage(target_driver)

    login_page.type_text_in_input(locator='email_input',
                                  text=cfg.test_user_email_for_profile)
    login_page.type_text_in_input(locator='password_input',
                                  text=cfg.test_user_password_for_profile)
    login_page.type_text_in_input(locator='confirm_input',
                                  text=cfg.test_user_password_for_profile)
    login_page.click_element('submit_btn')

    home_page = HomePage(target_driver, independent=False)

    home_page.wait_for_element('slogan')

    return home_page
Exemplo n.º 9
0
def test_singup_page_should_display_fetch_error_message_when_provided_password_is_invalid(
        responsive_target):

    login_page = LoginPage(responsive_target['driver'])

    login_page.type_text_in_input(locator='email_input',
                                  text=cfg.test_user_email)
    login_page.type_text_in_input(locator='password_input',
                                  text="invalid_password")
    login_page.type_text_in_input(locator='confirm_input',
                                  text="invalid_password")

    login_page.click_element('submit_btn')

    login_page.wait_for_element('fetch_err_msg')

    assert login_page.does_have_text_in_page("entered password is invalid.")
Exemplo n.º 10
0
def test_singup_page_should_display_fetch_error_message_when_provided_email_does_not_registered(
        responsive_target):

    login_page = LoginPage(responsive_target['driver'])

    login_page.type_text_in_input(locator='email_input',
                                  text="*****@*****.**")
    login_page.type_text_in_input(locator='password_input',
                                  text=cfg.test_user_password)
    login_page.type_text_in_input(locator='confirm_input',
                                  text=cfg.test_user_password)

    login_page.click_element('submit_btn')

    login_page.wait_for_element('fetch_err_msg')

    assert login_page.does_have_text_in_page("provided email is not found")