Esempio n. 1
0
def click_on_i_have_exported_in_the_last_12_months(driver: WebDriver):
    click_element = find_element(
        driver,
        find_selector_by_name(SELECTORS, "i have exported in last 12 months"))
    click_element.click()
    save = find_element(driver, find_selector_by_name(SELECTORS, "save"))
    save.click()
def search(driver: WebDriver, phrase: str):
    search_input = find_element(driver, find_selector_by_name(SELECTORS, "search box"))
    search_button = find_element(
        driver, find_selector_by_name(SELECTORS, "search button")
    )
    search_input.clear()
    search_input.send_keys(phrase)
    search_button.click()
Esempio n. 3
0
def fill_out_country(driver: WebDriver, country: str):
    try:
        time.sleep(1)
        skip_link = find_element(
            driver, find_selector_by_name(SELECTORS, "skipwalkthrough")
        )
        skip_link.click()
    except:
        pass

    try:
        time.sleep(1)
        if driver.find_element_by_css_selector("body > div:nth-child(11) > div > div > button").is_displayed():
            driver.find_element_by_css_selector("body > div:nth-child(11) > div > div > button").click()
    except:
        pass

    try:
        if driver.find_element_by_xpath("//button[contains(text(),'Got it')]").is_displayed():
            driver.find_element_by_xpath("//button[contains(text(),'Got it')]").click()
    except:
        pass

    # country
    time.sleep(1)
    country_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "country-btn")
    )
    country_btn.click()
    try:
        time.sleep(1)
        if driver.find_element_by_css_selector("body > div:nth-child(14) > div > div > button").is_displayed():
            driver.find_element_by_css_selector("body > div:nth-child(14) > div > div > button").click()
    except:
        pass

    time.sleep(1)
    if 0 == len(country):
        path_random_country_element = "body > div:nth-child(13) > div > div > div > div > div > div.only-desktop > div.suggested-markets > ul > button:nth-child(" + str(
            random.randint(1, 5)) + ")"
        driver.find_element_by_css_selector(path_random_country_element).click()
    else:
        try:
            if driver.find_element_by_xpath("//button[contains(text(),'Got it')]").is_displayed():
                driver.find_element_by_xpath("//button[contains(text(),'Got it')]").click()
        except:
            pass
        driver.find_element_by_css_selector("#search-input").clear()
        driver.find_element_by_css_selector("#search-input").send_keys(country)

        buttons_elements = driver.find_elements_by_tag_name("button")
        # logging.debug(buttons_elements)
        for button_element in buttons_elements:
            # logging.debug(button_element.text)
            if button_element.text == country.lower():
                button_element.click()
                # time.sleep(5)
                break
Esempio n. 4
0
def search_select_save_random_next(driver: WebDriver):
    time.sleep(5)
    counter = 0
    while True:
        try:
            driver.implicitly_wait(1)
            logging.debug('Counter -> ' + str(counter))
            #//body/div[7]/div/div/form/div[2]/div/span/div/section[1]/div/div/div
            parent_div_element = driver.find_element_by_xpath(
                "//body/div[4]/div/div/form/div[2]/div/span/div/section[1]/div/div/div"
            )
            logging.debug(parent_div_element)
            label_elements = parent_div_element.find_elements_by_tag_name(
                "label")
            logging.debug('number of labels - ' + str(len(label_elements)))
            radio_elements = []
            for label_element in label_elements:
                try:
                    logging.debug(label_element)
                    radio_ele = label_element.find_element_by_tag_name("input")
                    radio_elements.append(radio_ele)
                except Exception as ex:
                    #logging.error('Érror selecting correct label -> ' + str(ex))
                    pass

            random_label_index = random.randint(0, len(radio_elements) - 1)
            logging.debug('Index of radio buttons to be selected - ' +
                          str(random_label_index))
            if random_label_index <= len(radio_elements):
                # label_elements[random_label_index]
                for index, random_radio_element in enumerate(radio_elements):
                    if random_label_index == index:
                        logging.debug('Selecting Index of radio buttons - ' +
                                      str(index))
                        random_radio_element.click()
                        try:
                            driver.implicitly_wait(1)
                            search_next_btn = find_element(
                                driver,
                                find_selector_by_name(SELECTORS,
                                                      "search next button"))
                            search_next_btn.click()
                        except Exception as ex:
                            driver.implicitly_wait(1)
                            save_product_btn = find_element(
                                driver,
                                find_selector_by_name(SELECTORS,
                                                      "save product"))
                            save_product_btn.click()
                            break
            counter += 1
            if counter >= 20:
                break
        except Exception as ex:
            logging.error(str(ex))
            break
def should_see_office_details(driver: WebDriver, trade_office: str, city: str):
    office_selector = find_selector_by_name(SELECTORS, "office name")
    office = find_element(driver, office_selector)
    error = f"Expected to find details for '{trade_office}' but got {office.text}"
    assert trade_office.lower() in office.text.lower(), error

    address_selector = find_selector_by_name(SELECTORS, "office address")
    address = find_element(driver, address_selector)
    error = (f"Expected to find details for trade office in '{city}' but got "
             f"{address.text}")
    assert city.lower() in address.text.lower(), error
Esempio n. 6
0
def search_again_top_bottom(driver: WebDriver):
    try:
        search_again_top_btn = find_element(
            driver, find_selector_by_name(SELECTORS, "top search again"))
        search_again_top_btn.click()
    except:
        try:
            search_again_btm_btn = find_element(
                driver, find_selector_by_name(SELECTORS,
                                              "bottom search again"))
            search_again_btm_btn.click()
        except:
            pass
Esempio n. 7
0
def fill_out_product(driver: WebDriver, products: str):
    product_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "product-btn")
    )
    product_btn.click()

    if driver.find_element_by_css_selector("body > div:nth-child(11) > div > div > button").is_displayed():
        driver.find_element_by_css_selector("body > div:nth-child(11) > div > div > button").click()

    driver.find_element_by_xpath(
        "//body/div[2]/nav/span[2]/span/button")
        #"//body/div[3]/div[1]/div[1]/form[1]/div[2]/div[1]/div[1]/div[2]/div[1]/input[1]").send_keys(products)

    driver.find_element_by_xpath(
        "//body/div[3]/div[1]/div[1]/form[1]/div[2]/div[1]/div[1]/div[2]/button[1]/i[1]").click()
    while True:
        find_and_select_random_radio_and_click_next(driver)
        time.sleep(1)  # seconds
        try:
            if driver.find_element_by_xpath("//button[contains(text(),'Save product')]").is_displayed():
                driver.find_element_by_xpath("//button[contains(text(),'Save product')]").click()
                break
            else:
                continue
        except:
            pass
Esempio n. 8
0
def validate_entered_text(driver: WebDriver, element_name: str):
    text_element = find_element(
        driver, find_selector_by_name(SELECTORS, element_name)
    )
    if "Automated tests" in text_element.text:
        return True
    return False
Esempio n. 9
0
def should_see_it_on(driver: WebDriver, page: ModuleType):
    take_screenshot(driver, NAME + page.NAME)
    selector = find_selector_by_name(page.SELECTORS, "language selector")
    language_selector = find_element(driver, selector, element_name="language selector")
    with assertion_msg(f"Language selector is not visible on {driver.current_url}"):
        assert language_selector.is_displayed()
        logging.debug(f"Language selector is visible on {driver.current_url}")
Esempio n. 10
0
def open(driver: WebDriver, page: ModuleType, *, with_keyboard: bool = False):
    selector = find_selector_by_name(page.SELECTORS, "language selector")
    language_selector = find_element(driver, selector, element_name="language selector")
    if with_keyboard:
        language_selector.send_keys(Keys.ENTER)
    else:
        language_selector.click()
Esempio n. 11
0
def enter_value(driver: WebDriver, element_name: str):
    value_element = find_element(
        driver, find_selector_by_name(SELECTORS, element_name)
    )
    value_element.clear()
    value_element.send_keys("5000")
    time.sleep(2)
Esempio n. 12
0
def confirmation_code(driver: WebDriver, email: str, password: str):
    time.sleep(2)
    logging.debug("email: " + email)
    logging.debug("password: "******"code": confirmation_code}
        else:
            raise Exception("Failed to fetch the confirmation code from User email.")
    else:
        raise Exception("Failed to fetch the confirmation code from User email.")

    confirmation_code_selectors = SELECTORS["sign up"]
    fill_out_input_fields(driver, confirmation_code_selectors, details)
    fill_input_list = find_element(driver, find_selector_by_name(SELECTORS, "submit"))
    fill_input_list.click()
    time.sleep(2)
    driver.find_element_by_xpath("//a[@id='signup-modal-submit-success']").click()
Esempio n. 13
0
def fill_out_country(driver: WebDriver, country: str):
    try:
        time.sleep(1)
        skip_link = find_element(
            driver, find_selector_by_name(SELECTORS, "skipwalkthrough")
        )
        skip_link.click()
    except:
        pass

    try:
        time.sleep(1)
        if driver.find_element_by_css_selector("body > div:nth-child(11) > div > div > button").is_displayed():
            driver.find_element_by_css_selector("body > div:nth-child(11) > div > div > button").click()

        if driver.find_element_by_xpath("//button[contains(text(),'Got it')]").is_displayed():
            driver.find_element_by_xpath("//button[contains(text(),'Got it')]").click()
    except:
        pass

    # country
    time.sleep(1)
    country_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "country-btn")
    )
    country_btn.click()
    try:
        time.sleep(1)
        if driver.find_element_by_css_selector("body > div:nth-child(14) > div > div > button").is_displayed():
            driver.find_element_by_css_selector("body > div:nth-child(14) > div > div > button").click()
    except:
        pass

    time.sleep(1)
    if 0 == len(country):
        path_random_country_element = "body > div:nth-child(13) > div > div > div > div > div > div.only-desktop > div.suggested-markets > ul > button:nth-child(" + str(
            random.randint(1, 5)) + ")"
        driver.find_element_by_css_selector(path_random_country_element).click()
    else:
        driver.find_element_by_xpath(
            "//body/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[4]/div[1]/div[1]/div[1]/input").send_keys(
            country)
        country_name_btn_xpath = "//button[contains(text(),'" + country + "')]"
        driver.find_element_by_xpath(country_name_btn_xpath).click()
    time.sleep(1)
    driver.find_element_by_xpath("//a[@id='page-tour-skip']").click()
Esempio n. 14
0
def fill_out_email_address(driver: WebDriver, details: dict):
    email_address_selectors = SELECTORS["login"]
    logging.debug(email_address_selectors)
    logging.debug(details)
    fill_out_input_fields(driver, email_address_selectors, details)
    fill_input_list = find_element(driver, find_selector_by_name(SELECTORS, "login button"))
    fill_input_list.click()
    driver.implicitly_wait(000)
Esempio n. 15
0
def search_select_save_random_next(driver: WebDriver):
    counter = 0
    while True:

        if counter >= 50:
            break
        # logging.debug("Counter: " + str(counter))

        driver.implicitly_wait(1)

        # check for save button
        save_btn_found = False
        try:
            save_product_btn = driver.find_element_by_xpath(
                "//body/div[4]/div/div/form/div[2]/div/span/div/section[1]/div[2]/button"
            )
            save_btn_found = True
        except Exception as ex:
            logging.debug("save button not found.Exception: " + str(ex))

        if save_btn_found == True:
            logging.debug("Save button found")
            save_product_btn.click()
            return
        # look for div's and radio buttons
        # try:
        parent_1_div_element = driver.find_element_by_xpath(
            "//body/div[4]/div/div/form/div[2]/div/span/div/section/div")
        #      #   "/html/body/div[7]/div/div/form/div[2]/div/span/div/section/div")  # ("interaction grid m-v-xs")
        # except Exception as e:
        #     parent_1_div_element = driver.find_element_by_xpath("//body/div[7]/div[1]/div[1]/form[1]/div[2]/div[1]/span[1]/div[1]/section[1]/div[1]")#"interaction grid m-v-xs")
        child_1_div_element = parent_1_div_element.find_element_by_tag_name(
            "div")  # ("c-fullwidth")
        main_div_element = child_1_div_element.find_element_by_tag_name("div")
        # radio button labels
        label_elements = main_div_element.find_elements_by_tag_name("label")
        radio_elements = []
        for label_element in label_elements:
            radio_ele = None
            try:
                radio_ele = label_element.find_element_by_tag_name("input")
            except Exception as e:
                continue
            radio_elements.append(radio_ele)
        logging.debug('number of labels - ' + str(len(radio_elements)))
        random_label_index = random.randint(0, len(radio_elements) - 1)
        logging.debug('Index of radio buttons to be selected -> ' +
                      str(random_label_index))

        radio_btn_selected = radio_elements[random_label_index]
        radio_btn_selected.click()

        driver.implicitly_wait(1)
        search_next_btn = find_element(
            driver, find_selector_by_name(SELECTORS, "search next button"))
        search_next_btn.click()

        counter += 1
Esempio n. 16
0
def navigate_through_links_with_keyboard(driver: WebDriver, page: ModuleType):
    selector = find_selector_by_name(page.SELECTORS, "language selector")
    language_selector = find_element(driver, selector, element_name="language selector")
    options = language_selector.find_elements_by_tag_name("option")
    for _ in options:
        language_selector.send_keys(Keys.DOWN)
    for _ in options:
        language_selector.send_keys(Keys.UP)
    with assertion_msg(f"Language selector is not visible on {driver.current_url}"):
        assert language_selector.is_displayed()
Esempio n. 17
0
def select_product_search_again_top_bottom(driver: WebDriver, product_name: str):
    product_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "product-btn")
    )
    product_btn.click()
    search_again_top_bottom(driver)
    driver.implicitly_wait(1)
    driver.find_element_by_xpath("//body/div[4]/div/div/form/div[2]/div/div/div[2]/label/div/input").clear()
    driver.find_element_by_xpath("//body/div[4]/div/div/form/div[2]/div/div/div[2]/label/div/input").send_keys(product_name)
    driver.find_element_by_xpath("//body/div[4]/div/div/form/div[2]/div/div/div[2]/button").click()
Esempio n. 18
0
def generic_click_on_random_element(context: Context, actor_alias: str,
                                    elements_name: str):
    page = get_last_visited_page(context, actor_alias)
    selector = find_selector_by_name(page.SELECTORS, elements_name)
    elements = find_elements(context.driver, selector)
    element = random.choice(elements)
    href = f" → {element.get_attribute('href')}" if element.tag_name == "a" else ""
    logging.debug(f"Will click on: '{element.text.strip()}'{href}")
    scroll_to(context.driver, element)
    with wait_for_page_load_after_action(context.driver, timeout=10):
        with try_alternative_click_on_exception(context.driver, element):
            element.click()
Esempio n. 19
0
def fill_out_products(driver: WebDriver, products: str):
    # details_dict = {"emailaddress": products}
    # product_selectors = SELECTORS["dashboard"]
    # fill_out_input_fields(driver, product_selectors, details_dict)
    product_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "product-btn")
    )
    product_btn.click()
    driver.implicitly_wait(1)
    driver.find_element_by_xpath("//body/div[4]/div/div/form/div[2]/div/div/div[2]/label/div/input").clear()
    driver.find_element_by_xpath("//body/div[4]/div/div/form/div[2]/div/div/div[2]/label/div/input").send_keys(products)
    driver.find_element_by_xpath("//body/div[4]/div/div/form/div[2]/div/div/div[2]/button").click()
    time.sleep(5)
Esempio n. 20
0
def fill_out_product(driver: WebDriver, products: str):
    product_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "product-btn")
    )
    product_btn.click()

    try:
        if driver.find_element_by_css_selector("body > div:nth-child(11) > div > div > button").is_displayed():
            driver.find_element_by_css_selector("body > div:nth-child(11) > div > div > button").click()
    except:
        pass

    try:

        product_input_text = driver.find_element_by_xpath("//input[@id='input-commodity-name']").text
        logging.debug("product_input_text -> " + product_input_text)

        for i in range(len(product_input_text)):
            driver.find_element_by_xpath(
                "//body/div[3]/div[1]/div[1]/form[1]/div[2]/div[1]/div[1]/div[2]/div[1]/input[1]").sendKeys(
                Keys.BACKSPACE)
        driver.find_element_by_xpath(
            "//body/div[3]/div[1]/div[1]/form[1]/div[2]/div[1]/div[1]/div[2]/div[1]/input[1]").send_keys("")
        driver.find_element_by_xpath(
            "//body/div[3]/div[1]/div[1]/form[1]/div[2]/div[1]/div[1]/div[2]/div[1]/input[1]").send_keys(products)
        driver.find_element_by_xpath(
            "//body/div[3]/div[1]/div[1]/form[1]/div[2]/div[1]/div[1]/div[2]/button[1]/i[1]").click()

        while True:
            find_and_select_random_radio_and_click_next(driver)
            time.sleep(1)  # seconds
            try:
                if driver.find_element_by_xpath("//button[contains(text(),'Save product')]").is_displayed():
                    driver.find_element_by_xpath("//button[contains(text(),'Save product')]").click()
                    break
                else:
                    continue
            except:
                pass
    except Exception as ex:
        logging.debug("Exception in product input " + str(ex))
        driver.find_element_by_css_selector("#input-commodity-name").send_keys(products)
        driver.find_element_by_xpath("/html/body/div[3]/div/div/form/div[2]/div/div/section/div/button").click()
Esempio n. 21
0
def find_and_click(driver: WebDriver, *, element_selector_name: str):
    find_and_click = find_element(
        driver, find_selector_by_name(SELECTORS, element_selector_name)
    )
    find_and_click.click()
Esempio n. 22
0
def enter_text(driver: WebDriver, element_name: str):
    text_element = find_element(
        driver, find_selector_by_name(SELECTORS, element_name)
    )
    text_element.clear()
    text_element.send_keys("Automated tests")
def check_lesson_complete_yes(driver: WebDriver, element_selector_name: str):
    check_yes_link = find_element(
        driver, find_selector_by_name(SELECTORS, element_selector_name))
    check_yes_link.click()
Esempio n. 24
0
def find_and_click_change_link(driver: WebDriver, element_selector_name: str):
    change_link = find_element(
        driver, find_selector_by_name(SELECTORS, element_selector_name))
    change_link.click()
def fill_out_email_address(driver: WebDriver, details: dict):
    email_address_selectors = SELECTORS["forgotten password"]
    fill_out_input_fields(driver, email_address_selectors, details)
    reset_password_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "resetmypassword"))
    reset_password_btn.click()
def click_forgotten_password(driver: WebDriver, element_name: str):
    forgotten_password = find_element(
        driver, find_selector_by_name(SELECTORS, element_name))
    forgotten_password.click()
Esempio n. 27
0
def click_avatar(driver: WebDriver):
    avatar_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "avatar")
    )
    avatar_btn.click()
Esempio n. 28
0
def click_signout(driver: WebDriver):
    signout_link = find_element(
        driver, find_selector_by_name(SELECTORS, "sign out")
    )
    signout_link.click()
Esempio n. 29
0
def click_skip_walk_through(driver: WebDriver):
    skip_link = find_element(
        driver, find_selector_by_name(SELECTORS, "skipwalkthrough")
    )
    skip_link.click()
Esempio n. 30
0
def fill_out_product(driver: WebDriver, product_name: str):
    product_btn = find_element(
        driver, find_selector_by_name(SELECTORS, "add a product"))
    product_btn.click()
    # search_again_top_bottom(driver)
    driver.implicitly_wait(1)
    driver.find_element_by_xpath(
        "//body/div[9]/div/div/form/div[2]/div/div/div[2]/label/div/input"
    ).clear()
    driver.find_element_by_xpath(
        "//body/div[9]/div/div/form/div[2]/div/div/div[2]/label/div/input"
    ).send_keys(product_name)
    driver.find_element_by_xpath(
        "//body/div[9]/div/div/form/div[2]/div/div/div[2]/button/i").click()

    # Inorder to copy this code, 3 elements to be copied
    # as per the element path on the browser
    # save_product_btn, parent_1_div_element, search next button
    # def search_select_save_radio(driver: WebDriver):
    counter = 0
    while True:

        if counter >= 50:
            break
        # logging.debug("Counter: " + str(counter))

        driver.implicitly_wait(1)

        # check for save button
        save_btn_found = False
        try:
            save_product_btn = driver.find_element_by_xpath(
                "//body/div[9]/div/div/form/div[2]/div/span/div/section[1]/div[2]/button"
            )
            save_btn_found = True
        except Exception as ex:
            logging.debug("save button not found.Exception: " + str(ex))

        if save_btn_found == True:
            logging.debug("Save button found")
            save_product_btn.click()
            return
        # look for div's and radio buttons
        parent_1_div_element = driver.find_element_by_xpath(
            "//body/div[9]/div/div/form/div[2]/div/span/div/section[1]/div"
        )  # ("interaction grid m-v-xs")
        child_1_div_element = parent_1_div_element.find_element_by_tag_name(
            "div")  # ("c-fullwidth")
        main_div_element = child_1_div_element.find_element_by_tag_name(
            "div")  # "m-b-xs"
        # radio button labels
        label_elements = main_div_element.find_elements_by_tag_name("label")
        radio_elements = []
        for label_element in label_elements:
            radio_ele = None
            try:
                radio_ele = label_element.find_element_by_tag_name("input")
            except Exception as e:
                continue
            radio_elements.append(radio_ele)
        # logging.debug('number of labels - ' + str(len(radio_elements)))
        random_label_index = random.randint(0, len(radio_elements) - 1)
        # logging.debug('Index of radio buttons to be selected -> ' + str(random_label_index))

        radio_btn_selected = radio_elements[random_label_index]
        radio_btn_selected.click()

        driver.implicitly_wait(1)
        search_next_btn = find_element(
            driver, find_selector_by_name(SELECTORS, "search next button"))
        search_next_btn.click()

        counter += 1