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)
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
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
def report_problem(driver: WebDriver): find_and_click_on_page_element(driver, SELECTORS, "report a problem with the page", wait_for_it=False)