Пример #1
0
def access_search_type_tab(browser, document, attribute, type):
    search_type_tab = get_parent_element(
        locate_element_by_id(browser, attribute, type, True, document))
    while search_type_tab is None:
        check_for_browser_error(browser)
        search_type_tab = get_parent_element(
            locate_element_by_id(browser, attribute, type, True, document))
    return search_type_tab
Пример #2
0
def access_document_information(browser, abstract, document):
    locate_element_by_id(
        browser, abstract.county.ids["Document Image"], "document image",
        False, document
    )  # Wait for image to load (doesn't work, need to test with throttling)
    document_information = locate_element_by_id(
        browser, abstract.county.ids["Document Information"],
        "document information", False, document)
    return document_information
Пример #3
0
def access_search_navigation_tab(browser, abstract, document):
    search_navigation_tab = locate_element_by_id(
        browser, abstract.county.ids["Search Navigation"], "search navigation",
        True, document)
    while search_navigation_tab is None:
        search_navigation_tab = locate_element_by_id(
            browser, abstract.county.ids["Search Navigation"],
            "search navigation", True, document)
    return search_navigation_tab
Пример #4
0
def access_pdf_load_status(browser, abstract, document):
    loading_status_element = locate_element_by_id(
        browser, abstract.county.ids["PDF Viewer Load Marker"],
        "PDF Viewer load status", False, document)
    while loading_status_element is None:
        check_for_error(browser, abstract, document)
        loading_status_element = locate_element_by_id(
            browser, abstract.county.ids["PDF Viewer Load Marker"],
            "PDF Viewer load status", False, document)
    return loading_status_element.text
Пример #5
0
def access_image_container(browser, abstract, document):
    image_container = locate_element_by_id(
        browser, abstract.county.ids["Image Container"], "image container",
        False, document)
    while image_container is None:
        check_for_error(browser, abstract, document)
        image_container = locate_element_by_id(
            browser, abstract.county.ids["Image Container"], "image container",
            False, document)
    return image_container.text
Пример #6
0
def access_document_information(browser, abstract, document):
    locate_element_by_id(
        browser,
        abstract.county.ids["Document Image"],  # Document Image Loaded
        "document image",
        False,
        document)
    # doesn't work, need to test with throttling
    document_information = locate_element_by_id(
        browser, abstract.county.ids["Document Information"],
        "document information", False, document)  # Document Information Loaded
    return document_information
Пример #7
0
def access_document_tables(browser, abstract, document):
    document_information = locate_element_by_id(
        browser, abstract.county.ids["Document Information"],
        "document information", False, document)
    return locate_elements_by_class_name(
        document_information, abstract.county.classes["Document Table"],
        "document information tables", False, document)
Пример #8
0
def get_document_type_and_number(browser, abstract, document):
    document_type_and_number_field = locate_element_by_id(
        browser,
        abstract.county.ids["Document Type And Number"],
        "document type and number field",
        document=document)
    return document_type_and_number_field.text.split('\n')[0]
Пример #9
0
def open_search_type_tab(browser, abstract, document):
    switch_to_search_menu_frame(browser, abstract)
    document_search_menu = locate_element_by_id(
        browser, abstract.county.buttons['Document Search Menu'],
        'document search menu button', True, document)
    while not menu_is_active(document_search_menu):
        document_search_menu.click()
Пример #10
0
def access_results_table(browser, abstract, document):
    results = locate_element_by_id(browser,
                                   abstract.county.ids["Results Table"],
                                   "results table", False, document)
    center_element(browser, results)
    results_table = locate_element_by_tag_name(
        results, abstract.county.tags["Table Body"], "results table body",
        False, document)
    return results_table
Пример #11
0
def open_search_tab(browser, abstract):
    search_tab = locate_element_by_id(browser,
                                      abstract.county.ids["Search Tab"],
                                      "search tab", True)
    center_element(browser, search_tab)
    if is_active_class(get_parent_element(search_tab)):
        return
    else:
        search_tab.click()
Пример #12
0
def count_results(browser, abstract, document):
    # Wait for results table to load before getting count
    locate_element_by_id(browser, abstract.county.ids["Results Table"],
                         "results table", False, document)
    # I don't think the above is doing anything useful
    naptime()
    # Need to find a better trigger to wait on
    result_count = locate_element_by_id(browser,
                                        abstract.county.ids["Result Count"],
                                        "result count", False, document)
    # This doesn't work the way it's supposed to
    # Need to perform a match against the document number in order to find the correct count
    # Check leopard for options
    if int(result_count.text.split(' ')[-1]) > 1:
        if document.type == "document_search":
            document.number_results = 1
        elif document.type == "name":
            document.number_results = int(result_count.text.split(' ')[-1])
Пример #13
0
def read_login_message(browser, abstract):
    try:
        login_message = locate_element_by_id(browser,
                                             abstract.county.credentials[4],
                                             "login message", True)
        return login_message.text
    except StaleElementReferenceException:
        print('Encountered StaleElementReferenceException '
              'attempting to read login message, trying again.')
Пример #14
0
def get_results(browser, abstract, document):
    search_results_table = locate_element_by_id(
        browser,
        abstract.county.ids["Search Results"],
        "search results table",
        document=document)
    # Need a separate function path if multiple results are returned
    return locate_element_by_class_name(search_results_table,
                                        abstract.county.classes["Results"],
                                        "search results", True, document)
Пример #15
0
def access_results_table(browser, abstract, document):
    results = locate_element_by_id(browser,
                                   abstract.county.ids["Results Table"],
                                   "results section",
                                   document=document)
    results_table = locate_element_by_tag_name(results,
                                               abstract.county.tags["Body"],
                                               "results table",
                                               document=document)
    return results_table
Пример #16
0
def access_field_value(browser, document, id, field_type):
    field = locate_element_by_id(browser, id, field_type, document=document)
    if field_type.endswith('date'):
        return date_from_string(get_field_value(field).split(' ')[0])
    elif field_type == 'document type':
        return update_sentence_case_extras(title_strip(get_field_value(field)))
    else:
        if field_type == 'reception number':
            document.reception_number = get_field_value(field)
        return get_field_value(field)
Пример #17
0
def get_results(browser, document, result_number):
    search_results_table = locate_element_by_id(browser,
                                                search_results_id,
                                                "search results table",
                                                document=document)
    results_class = determine_results_class(result_number)
    return locate_elements_by_class_name(search_results_table,
                                         results_class,
                                         "search results",
                                         True,
                                         document=document)
Пример #18
0
def record_parties(browser, abstract, document):
    parties_container = locate_element_by_id(browser,
                                             abstract.county.record["Parties"],
                                             "parties", False, document)
    parties_text_list = remove_empty_list_items(
        parties_container.text.split('\n'))
    midpoint = parties_text_list.index('Grantees')
    grantor = list(map(title_strip, parties_text_list[1:midpoint]))
    grantee = list(map(title_strip, parties_text_list[(midpoint + 1):]))
    record_value(abstract, 'grantor', list_to_string(grantor))
    record_value(abstract, 'grantee', list_to_string(grantee))
Пример #19
0
def record_indexing_information(browser, abstract, document):
    indexing_information_container = locate_element_by_id(
        browser, abstract.county.record["Indexing Information"],
        "indexing information", False, document)
    indexing_text = indexing_information_container.text.split('\n')
    if len(indexing_text) == 5:
        indexing_text = indexing_text[:-1]
    reception_number_text, book_and_page_text, effective_date_text, recording_date_text = indexing_text
    record_reception_number(abstract, document, reception_number_text)
    record_book_and_page(abstract, book_and_page_text)
    record_effective_date(abstract, effective_date_text)
    record_recording_date(abstract, recording_date_text)
Пример #20
0
def validate_login(browser, abstract):
    switch_to_main_frame(browser, abstract)
    welcome_message = locate_element_by_id(browser,
                                           abstract.county.ids['Post Login'],
                                           'post login')
    if welcome_message.text.strip() == abstract.county.messages['Post Login']:
        print('\nLogin successful, continuing program execution.')
    else:
        # print('\nBrowser failed to successfully login, exiting program.')
        # browser.quit()
        # exit()
        print('\nBrowser failed to successfully login, please review...')
        input()
Пример #21
0
def access_notes(browser, abstract, document):
    notes_container = locate_element_by_id(browser,
                                           abstract.county.record["Notes"],
                                           "notes", False, document)
    notes_text = get_direct_children(notes_container)[2].text
    if notes_text.startswith('Legals'):
        return list_to_string(notes_text.split('\n')[1:])
    elif notes_text.startswith('Notes'):
        return list_to_string(notes_text.split(' ')[1:], False)
    else:
        input(
            'Unexpected result while parsing notes, please review and update accordingly...'
        )
Пример #22
0
def check_for_redirect(browser, abstract):
    micro_nap()
    redirect_modal = locate_element_by_id(
        browser,
        abstract.county.ids["Redirect Modal"],
        "redirect modal",
        quick=True)
    if redirect_modal is None:
        return
    elif get_element_class(
            redirect_modal) == abstract.county.classes["Redirect Active"]:
        buttons = locate_elements_by_class_name(
            browser, abstract.county.buttons["Login"], "login buttons", True)
        buttons[2].click()
Пример #23
0
def open_search(browser, abstract):
    # Messy => figure out a better way to do this
    javascript_script_execution(browser, abstract.county.scripts["Search"])
    naptime()
    # This will probably not work great when called during the 'login' process
    ######
    search_navigation = locate_element_by_id(
        browser, abstract.county.ids["Search Navigation"], "search navigation",
        True)
    if is_active_class(search_navigation):
        return
    else:
        browser.execute_script(abstract.county.scripts["Search"])
        assert abstract.county.titles["Search"]
Пример #24
0
def count_results(browser, abstract, document):
    click_button(browser, locate_element_by_id,
                 abstract.county.buttons["Result Count"],
                 "result count button", document)  # Open Result Count
    naptime()
    naptime()
    result_count = locate_element_by_id(browser,
                                        abstract.county.ids["Result Count"],
                                        "result count",
                                        document=document)  # Get Result Count
    # This doesn't work the way it's supposed to
    # Need to perform a match against the document number in order to find the correct count
    # Check leopard for options
    if int(result_count.text.split(' ')[-1]) > 1:
        document.number_results = 1
Пример #25
0
def handle_disclaimer(browser, abstract):
    javascript_script_execution(
        browser,
        abstract.county.scripts["Open Search"]
    )
    disclaimer = locate_element_by_id(browser,
                                      abstract.county.ids["Disclaimer"],
                                      "disclaimer"
                                      )
    if disclaimer.get_attribute('class') == abstract.county.classes["Disclaimer Active"]:
        click_button(
            browser,
            locate_element_by_id,
            abstract.county.buttons["Disclaimer"],
            "disclaimer button"
        )
        naptime()
Пример #26
0
def access_logout_link(browser, abstract):
    logout_button = locate_element_by_id(browser,
                                         abstract.county.buttons["Logout"],
                                         "logout button", True)
    return logout_button.get_attribute("href")
Пример #27
0
def get_search_result_rows(browser, document):
    search_results = locate_element_by_id(browser, results_table_id,
                                          "search results", document=document)
    result_rows = locate_elements_by_tag_name(search_results, result_row_tag_name,
                                              "search result rows", document=document)
    return result_rows[1:-1]
Пример #28
0
def enter_credentials(browser, abstract):
    login_prompt = locate_element_by_id(browser,
                                        abstract.county.credentials[1],
                                        "login prompt")
    login_prompt.send_keys(abstract.county.credentials[0] + Keys.TAB +
                           abstract.county.credentials[2] + Keys.RETURN)
Пример #29
0
def get_results_table_body(browser, abstract, document):
    results_table = locate_element_by_id(browser, abstract.county.ids["Results Table"],
                                         "results table", False, document)
    scroll_into_view(browser, results_table)
    return locate_element_by_tag_name(results_table, abstract.county.tags["Results Table Body"],
                                      "results table body", False, document)
Пример #30
0
def count_results(browser, abstract, document):
    result_count = locate_element_by_id(browser, abstract.county.ids["Results Count"],
                                        "results count", False, document)
    # 'check_For_alert' function originally followed the timeout exception in 'locate_result_count' function
    #  If result count == none, perform a "re-search"
    return result_count.text.split(' ')[-1]