Exemplo n.º 1
0
def validate_cart_page(context, quantity, wanted, options):
    home_page = Singleton.getInstance(context, HomePage)
    expected_price = context.browser.find_element(
        By.ID, home_page.locators['expected_price']).text
    quantity_selected = context.browser.find_element_by_xpath(
        "//select[@name='quantity']/option[@value='" + quantity + "']").text
    option_selected = context.browser.find_element_by_xpath(
        "//*[contains(text(), '" + options + "')]").text
    click_on_cart = context.browser.find_element(
        By.ID, home_page.locators['add_cart_button'])
    click_on_cart.click()
    continue_to_cart = context.browser.find_element(
        By.ID, home_page.locators['continue_to_cart'])
    continue_to_cart.click()
    actual_price = context.browser.find_element(
        By.XPATH, home_page.locators['actual_price']).text
    actual_quantity = context.browser.find_element_by_xpath(
        "//*[contains(text(), '(" + quantity + "')]").text
    if (int(quantity) > 1):
        actual_price = float(
            actual_price.replace('R$', '').replace('.', '').replace(',', '.'))
        expected_price = expected_price.replace('R$', '').replace('.',
                                                                  '').replace(
                                                                      ',', '.')
        expected_price = float(expected_price) * int(quantity)
    assert_equals(expected_price, actual_price)
    if (actual_quantity != quantity_selected or option_selected != " "):
        pass
    else:
        message = "The test failed. The quantity expected is no the same in the cart."
Exemplo n.º 2
0
def current_page_should_have_an_error_message(context, message):
    login_page = Singleton.getInstance(context, LoginPage)
    expected_message = login_page.datapool_read(login_page, SYSTEM_MESSAGES,'login_user', message)
    element_message = context.browser.find_elements(By.CLASS_NAME, login_page.locators['alert_message'])
    current_message = element_message[0].text + element_message[1].text
    if current_message == expected_message :
        pass
    else:
        message = "The alert threw wrong message on the login screen. It was expected the '"+expected_message+"' and was obtained '"+current_message+"'."
        raise Exception(message)
Exemplo n.º 3
0
def click_on_sign_in(context, product):
    home_page = Singleton.getInstance(context, HomePage)
    cart_count = context.browser.find_element(
        By.ID, home_page.locators['cart_count']).text
    if (int(cart_count) > 0):
        click_on_cart_icon = context.browser.find_element(
            By.ID, home_page.locators['cart_icon']).click()
        remove_from_cart(context)
        go_to_home = context.browser.find_element(
            By.ID, home_page.locators['home_page_icon']).click()

    search_field = context.browser.find_element(
        By.XPATH, home_page.locators['search_field'])
    search_field.send_keys(product, Keys.ENTER)
Exemplo n.º 4
0
def validate_empty_cart(context, message):
    home_page = Singleton.getInstance(context, HomePage)
    expected_message = home_page.datapool_read(home_page, SYSTEM_MESSAGES,
                                               'cart_messages', message)
    time.sleep(1)
    current_message = context.browser.find_element_by_xpath(
        "//*[contains(text(), '" + expected_message + "')]").text
    # New message comparison needed because amazon changes the cart empty alert
    alternative_message = "Seu carrinho de compras está vazio."
    if (current_message == expected_message
            or alternative_message == expected_message):
        pass
    else:
        message = "The page threw wrong message on the cart screen. It was expected the '" + expected_message + "' and was obtained '" + current_message + "'."
        raise Exception(message)
Exemplo n.º 5
0
def click_on_sign_in(context):
    login_page = Singleton.getInstance(context,LoginPage)
    sign_in_button = context.browser.find_element(By.CSS_SELECTOR, login_page.locators['sign_in_button'])
    sign_in_button.click()
    time.sleep(2)

    # For captcha you will need to enter the information manually.
    if ("Insira os caracteres que está vendo" in context.browser.page_source):
      fill_in_the_field_password(context, context.credential)
      WebDriverWait(context.browser, 100).until(EC.invisibility_of_element((By.CSS_SELECTOR, '#auth-captcha-image')))
    # Script to automate first login verification.
    text= "Verificação necessária"
    if (text in context.browser.page_source):
      click_on_continue(context)
      verification_number = run_gmail(context)
      WebDriverWait(context.browser, 100).until(EC.invisibility_of_element((By.CSS_SELECTOR, '#auth-captcha-image')))
      context.browser.find_element(By.CSS_SELECTOR, "[name='code']").send_keys(verification_number)
      context.browser.find_element(By.CSS_SELECTOR, "#a-autoid-0").click()
      time.sleep(5)
Exemplo n.º 6
0
def select_product(context, wanted):
    home_page = Singleton.getInstance(context, HomePage)
    select_product = context.browser.find_element_by_xpath(
        "//*[contains(text(), '" + wanted + "')]")
    select_product.click()
Exemplo n.º 7
0
def validate_result_page(context, products):
    home_page = Singleton.getInstance(context, HomePage)
    if (products in context.browser.page_source):
        pass
    else:
        message = "Test Failed. The product searched not appear on the result page."
Exemplo n.º 8
0
def remove_from_cart(context):
    home_page = Singleton.getInstance(context, HomePage)
    context.browser.find_element(By.CSS_SELECTOR,
                                 home_page.locators['delete_item']).click()
Exemplo n.º 9
0
def fill_in_the_field_a_password(context, credential, password):
    login_page = Singleton.getInstance(context,LoginPage)
    pwd = login_page.datapool_read(login_page, DATA_ACCESS,credential, password)
    password_field = context.browser.find_element(By.CSS_SELECTOR, login_page.locators['password_field'])
    password_field.clear()
    password_field.send_keys(pwd)
Exemplo n.º 10
0
def fill_in_the_field_an_username(context, credential, user):
    login_page = Singleton.getInstance(context,LoginPage)
    user = login_page.datapool_read(login_page, DATA_ACCESS, credential, user)
    username_field = context.browser.find_element(By.CSS_SELECTOR, login_page.locators['username_field'])
    username_field.clear()
    username_field.send_keys(user)
Exemplo n.º 11
0
def click_on_continue(context):
    login_page = Singleton.getInstance(context,LoginPage)
    continue_button = context.browser.find_element(By.CSS_SELECTOR, login_page.locators['continue_button'])
    continue_button.click()
Exemplo n.º 12
0
def navigate_to_the_amazon_login(context):
    home_page = Singleton.getInstance(context,HomePage)
    context.browser.get(home_page.project_url)
    login_button = context.browser.find_element(By.XPATH, home_page.locators['login'])
    login_button.click()