コード例 #1
0
def click_on_page_element(context: Context,
                          actor_alias: str,
                          element_name: str,
                          *,
                          page_name: str = None):
    if page_name:
        page = get_page_object(page_name)
    else:
        page = get_last_visited_page(context, actor_alias)
    logging.debug(page)
    find_and_click_on_page_element(context.driver, page.SELECTORS,
                                   element_name)
    logging.debug("%s decided to click on '%s' on '%s' page", actor_alias,
                  element_name, page.NAME)
コード例 #2
0
def actor_decides_to_click_back_until_reaches_product_search_page(
        context, actor_alias, element_name, max_number_pages, page_name):
    counter = 0
    while counter < int(max_number_pages):
        current_page_url = str(context.driver.current_url)
        # logging.debug(f"current_page_url -> {current_page_url}")
        if "tradedata/?code" in current_page_url:
            page = get_page_object("Search - Tradedata codes")
            find_and_click_on_page_element(context.driver, page.SELECTORS,
                                           element_name)
        elif "check-your-answers" in current_page_url:
            page = get_page_object("ImportTariff - CheckYourAnswers")
            find_and_click_on_page_element(context.driver, page.SELECTORS,
                                           element_name)
        elif "search/" in current_page_url:
            page = get_page_object(page_name)
            break
        elif "refine/?interaction" in current_page_url:
            page = get_page_object("Search - Refinement Interaction")
            find_and_click_on_page_element(context.driver, page.SELECTORS,
                                           element_name)
        else:
            error = f"Landed on unrecognized page after {counter} attempts!"
            assert False, error

        counter += 1
コード例 #3
0
def actor_select_or_enter_random_data_click_continue_until_checkanswers_page(
        context, actor_alias, max_number_pages):
    counter = 0
    while counter < int(max_number_pages):
        current_page_url = str(context.driver.current_url)
        # logging.debug(f"current_page_url -> {current_page_url}")
        # time.sleep(1)
        if "tradedata/?code" in current_page_url:
            page = get_page_object("Search - Tradedata codes")
            has_action(page, "find_and_select_random_radio_and_click_continue")
            has_action(page, "searchcontinue")
            page.find_and_select_random_radio_and_click_continue(
                context.driver)
            page.searchcontinue(context.driver)
        elif "check-your-answers" in current_page_url:
            break
        elif "refine/?interaction" in current_page_url:
            try:
                page = get_page_object("Search - Refinement Interaction")
                has_action(page,
                           "find_and_select_random_radio_and_click_continue")
                page.find_and_select_random_radio_and_click_continue(
                    context.driver)
                # time.sleep(1)
                composition_text_element = context.driver.find_element_by_xpath(
                    "//*[@id=\"composition_message\"]")
                composition_text = str(composition_text_element.text)
                if "The numbers need to add up to 100." in composition_text:
                    page = get_page_object("Search - Refinement Interaction")
                    has_action(page,
                               "find_and_enter_random_composition_percent")
                    page.find_and_enter_random_composition_percent(
                        context.driver, "100")
                    find_and_click_on_page_element(context.driver,
                                                   page.SELECTORS, "Continue")
            except NoSuchElementException:
                pass
        counter += 1
コード例 #4
0
def report_problem(driver: WebDriver):
    find_and_click_on_page_element(driver,
                                   SELECTORS,
                                   "report a problem with the page",
                                   wait_for_it=False)