Example #1
0
def download_order_file(url: str, filename: str, download_path: str):
    print("___attemting to download order file___")
    try:
        browser = Browser.Browser()
        fileSystem = FileSystem()
        fileSystem.create_directory(download_path)
        browser.new_browser(downloadsPath=download_path)
        browser.new_context(acceptDownloads=True)
        browser.new_page()
        order_file_download = browser.download(url)
        orders_csv_filepath_origin = order_file_download.get("saveAs")
        orders_csv_filepath = download_path + filename
        fileSystem.wait_until_created(orders_csv_filepath_origin)
        fileSystem.copy_file(source=orders_csv_filepath_origin,
                             destination=orders_csv_filepath)
    except Exception as errorMessage:
        print("Unable to download order file: " + str(errorMessage))
    finally:
        browser.playwright.close()
    print("_____complete download____")
Example #2
0
def open_and_complete_form(url: str, constitutional_response: str,
                           csv_filename: str):
    try:
        browser = Browser.Browser()
        browser.new_browser(headless=False)
        browser.new_page(url)
        button_response = "text=" + constitutional_response
        browser.click(selector=button_response)
        pdf = PDF()
        fileSystem = FileSystem()
        print(csv_filename)
        with open(csv_filename) as csv_file:
            csv_reader = csv.reader(csv_file, delimiter=',')
            line_count = 0
            if not os.path.exists(run_archive_filepath):
                os.makedirs(run_archive_filepath)
            else:
                fileSystem.empty_directory(run_archive_filepath)
            for row in csv_reader:
                if line_count == 0:
                    line_count += 1
                else:
                    try:
                        print("Completing order " + row[0])
                        #browser.click(selector="id=head")
                        #time.sleep(2)
                        #browser.keyboard_key(action="press", key="ArrowDown")
                        #browser.keyboard_key(action="press", key="Enter")
                        #browser.press_keys('id=head', "Arrowdown 2", "Enter")
                        #browser.click(selector='xpath=//select/option[@value="'+row[1]+'"]')
                        browser.click(
                            selector=
                            'xpath=//form/div/div/div/label[@for="id-body-' +
                            row[2] + '"]')
                        browser.fill_text(
                            selector=
                            'xpath=//div/input[@placeholder="Enter the part number for the legs"]',
                            txt=row[3])
                        browser.fill_text(selector="id=address", txt=row[4])
                        browser.select_options_by("id=head",
                                                  SelectAttribute["value"],
                                                  str(row[1]))
                        browser.click(selector="id=preview")
                        browser.click(selector="id=order")
                        receipt_html_text = browser.get_text(
                            selector="id=receipt")
                        robot_previous_filepath = run_archive_filepath + "\\robot_preview_image_" + str(
                            row[0]) + ".png"
                        browser.wait_for_elements_state(
                            selector="id=robot-preview-image")
                        browser.take_screenshot(
                            selector="id=robot-preview-image",
                            filename=robot_previous_filepath,
                            fullPage=True)
                        receipt_file_path = run_archive_filepath + "\\receipt_file_" + str(
                            row[0])
                        pdf.html_to_pdf(receipt_html_text,
                                        receipt_file_path + ".pdf")
                        browser.click(selector="id=order-another")
                        fileSystem.wait_until_created(robot_previous_filepath)
                        browser.click(selector=button_response)
                        pdf.add_watermark_image_to_pdf(
                            image_path=robot_previous_filepath,
                            output_path=receipt_file_path + "_robot_image.pdf",
                            source_path=receipt_file_path + ".pdf")
                        fileSystem.wait_until_created(path=receipt_file_path +
                                                      "_robot_image.pdf")
                        print("Order complete")
                    except Exception as errorMessage:
                        try:
                            error_message = browser.get_text(
                                selector=
                                'xpath=//div[@class="alert alert-danger"]')
                        except:
                            error_message = errorMessage
                        finally:
                            print("Failed to process order: " +
                                  str(error_message))
                            browser.playwright.close()
                            browser.new_browser(headless=False)
                            browser.new_page(url)
                            button_response = "text=" + constitutional_response
                            browser.click(selector=button_response)

                    finally:
                        print("Getting next order...")

    finally:
        try:
            browser.playwright.close()
        finally:
            print("all orders complete")