Пример #1
0
def record_related_documents(browser, abstract, document):
    related_documents_field = locate_element_by_class_name(
        browser, abstract.county.record["Related Documents"],
        "related documents", False, document)
    related_documents = list_to_string(
        related_documents_field.text.split('\n')[1:])
    record_value(abstract, 'related documents', related_documents)
Пример #2
0
def check_for_error(browser, abstract, document, alt=None):
    error_message = locate_element_by_class_name(
        browser,
        abstract.county.classes["Error Message"],
        "search error message",
        document=document,
        quick=True)
    if error_message is not None:
        print(
            f'Located an error during processing of {document.extrapolate_value()}...'
        )
        if error_message.text.startswith(
                abstract.county.messages["Error Message"]):
            print(
                f'An error occurred while handling document located at '
                f'{document.extrapolate_value()}, refreshing the page to try again.'
            )
            browser.refresh()
            naptime()
            return abstract.county.messages["Error Message"]
        else:
            print(
                'Unable to determine how to handle error, please review and press enter to continue...'
            )
            input()
            return abstract.county.messages["Error Message"]
    elif alt == 'search':
        return False
    else:
        print(
            'No error appears to have occurred, please review and press enter to continue...'
        )
        input()
        return abstract.county.messages["Error Message"]
Пример #3
0
def verify_login(browser, abstract):
    if browser.title == abstract.county.titles["Login"]:
        validation_errors = locate_element_by_class_name(
            browser, abstract.county.classes["Validation Error"],
            "validation errors")
        print(validation_errors.text)
        browser.quit()
        exit()
Пример #4
0
def record_indexing_information(abstract, document_table, document):
    recording_date_field = locate_element_by_class_name(
        document_table,
        abstract.county.classes["Recording Date"],
        "recording date",
        document=document)
    recording_date = date_from_string(recording_date_field.text[:10])
    record_value(abstract, 'recording date', recording_date)
Пример #5
0
def center_purchase_button(browser, abstract, document):
    purchase_button = locate_element_by_class_name(
        browser,
        abstract.county.classes["Purchase Button"],
        "purchase button",
        clickable=True,
        document=document)
    center_element(browser, purchase_button)
Пример #6
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)
Пример #7
0
def get_document_link(abstract, result, document):
    result_actions_list = locate_element_by_class_name(
        result,
        abstract.county.classes["Result Actions"],
        "search results actions list",
        document=document)
    return locate_elements_by_tag_name(result_actions_list,
                                       abstract.county.tags["Result Actions"],
                                       "search actions",
                                       document=document)[1]
Пример #8
0
def record_legal(browser, abstract, document):
    legal_field = locate_element_by_class_name(browser,
                                               abstract.county.record["Legal"],
                                               "legal", False, document)
    legal = list_to_string(legal_field.text.split('\n')[1:])
    notes = access_notes(browser, abstract, document)
    if notes == '' or notes == ' ':
        record_value(abstract, 'legal', legal)
    else:
        record_value(abstract, 'legal', f'{notes}\n\n{legal}')
Пример #9
0
def validate_search(browser, abstract, document):
    if not assert_window_title(browser, abstract.county.titles["Search Results"]):
        print(f'Browser failed to successfully execute search for '
              f'"{document.extrapolate_value()}", validating search...')
        error_message_element = locate_element_by_class_name(browser, abstract.county.classes["Validation"],
                                                             "search results", document=document)
        if error_message_element.text.strip() == abstract.county.messages["Invalid Search"]:
            print(abstract.county.messages["Invalid Search"])
        else:
            print('Unable to identify the issue, please review.')
            print(error_message_element.text.strip())
        print('Please review and press enter to continue...')
        input()
Пример #10
0
def switch_into_frame(browser, abstract, document):
    try:
        pdf_viewer = locate_element_by_class_name(
            browser, abstract.county.classes["PDF Viewer"], "pdf viewer")
        if not pdf_viewer:
            return pdf_viewer
        center_purchase_button(browser, abstract, document)
        browser.switch_to.frame(pdf_viewer)
        return True
    except TimeoutException:
        print(
            "Browser timed out while trying to access the pdf viewer, refreshing the page to try again."
        )
        return False
Пример #11
0
def switch_into_frame(browser, abstract, document):
    try:
        pdf_viewer = locate_element_by_class_name(
            browser, abstract.county.classes["PDF Viewer"], "pdf viewer")
        if not pdf_viewer:
            # print('Unable to locate PDF viewer, trying again.')
            # print(f'PDF Viewer: {pdf_viewer}')
            # print(f'Reception Number: {document.reception_number}')
            # print(f'Download Value: {document.download_value}')
            return pdf_viewer
        center_purchase_button(browser, abstract, document)
        browser.switch_to.frame(pdf_viewer)
        return True
    except TimeoutException:
        print(
            "Browser timed out while trying to access the pdf viewer, refreshing the page to try again."
        )
        return False
Пример #12
0
def count_results(browser, document):
    result_count = locate_element_by_class_name(browser,
                                                number_results_class,
                                                "number results",
                                                document=document)
    if result_count.text == single_result_message:
        document.number_results += 1
    elif result_count.text.endswith(multiple_results_message):
        document.number_results += int(
            result_count.text[:-len(multiple_results_message)])
        print(
            f'{document.number_results} documents returned while searching {document.extrapolate_value()}.'
        )
    else:
        print(f'Browser unable to determine results for '
              f'{document.extrapolate_value()}, please review.')
        print("Please press enter after reviewing the search results...")
        input()
Пример #13
0
def count_results(browser, abstract, document):
    result_count = locate_element_by_class_name(
        browser,
        abstract.county.classes["Number Results"],
        "number results",
        document=document)
    if result_count.text == abstract.county.messages["Single Result"]:
        document.number_results = 1
    elif result_count.text.endswith(
            abstract.county.messages["Multiple Results"]):
        document.number_results += int(
            result_count.
            text[:-len(abstract.county.messages["Multiple Results"])])
        print(
            f'{document.number_results} documents returned while searching {document.extrapolate_value()}.'
        )
    else:
        print(f'Browser unable to determine results for '
              f'{document.extrapolate_value()}, please review.')
        print("Please press enter after reviewing the search results...")
        input()
Пример #14
0
def record_document_type(browser, abstract, document):
    document_type_field = locate_element_by_class_name(
        browser, abstract.county.record["Document Type"], "document type",
        False, document)
    record_value(abstract, 'document type', document_type_field.text.title())
Пример #15
0
def access_result_button(abstract, result, document=None):
    result_button = locate_element_by_class_name(
        result, abstract.county.buttons["Open Document"], "result button",
        True, document)
    return result_button.get_attribute("href")
Пример #16
0
def validate_search(browser, abstract, document):
    return (abstract.county.messages["Invalid Search"] !=
            locate_element_by_class_name(browser,
                                         abstract.county.classes["Validation"],
                                         "search validation message",
                                         document=document))
Пример #17
0
def get_next_result_button(browser, abstract, document):
    result_buttons = locate_element_by_class_name(
        browser, abstract.county.classes["Result Buttons"], "result buttons",
        False, document)
    return result_buttons.find_elements_by_tag_name(
        abstract.county.tags["Result Button"])[1]
Пример #18
0
def verify_results_loaded(browser, abstract, document):
    no_results_element = locate_element_by_class_name(browser, abstract.county.classes["No Results"], "no results",
                                                      document=document, quick=True)
    if no_results_element is None:
        return True