[Python] download pdf with web scrapping using selenium

Discussão em 'Python' iniciado por Stack, Setembro 6, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to use selenium to download a PDF using web scrapping but the interaction is only working till oacy button, i am unable to insert date (9/5/25 format). i am expecting a yesterday date to be inserted in date field after clicking on operationally available (oacy_button).

    def algonquin_oacy():
    service = Service(r"C:\Users\ST\Downloads\chromedriver-win64\chromedriver-win64\chromedriver.exe")
    driver = webdriver.Chrome(service=service)
    driver.maximize_window()

    try:
    driver.get("https://infopost.enbridge.com/infopost/AGHome.asp?pipe=AG")

    wait = WebDriverWait(driver, 15)
    capacity_button = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Capacity")))
    capacity_button.click()

    oacy_button = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Operationally Available")))
    oacy_button.click()

    yesterday = date.today() - timedelta(days=1)
    date_format = f"{yesterday.month}/{yesterday.day}/{yesterday.year}"
    yesterday = str(yesterday)

    driver.switch_to.default_content()
    mainframe = wait.until(EC.frame_to_be_available_and_switch_to_it((By.NAME, "current-content")))


    date_input = wait.until(EC.presence_of_element_located((By.ID, "ctl00_MainContent_ctl01_oaDefault_ucDate_rdpDate_dateInput")))
    date_input.click()
    date_input.clear()
    date_input.send_keys(date_format, Keys.ARROW_DOWN, Keys.ENTER)
    date_input.send_keys("\n")
    time.sleep(5)

    cycle = Select(driver.find_element(By.ID, "ddlSelector"))

    for option in cycle.options:
    if yesterday in option.text:
    option.click()
    break
    #select = Select(cycle)
    #submit_button = wait.until(EC.element_to_be_clickable((By.ID, "ctl00_MainContent_ctl01_oaDefault_btnRetrieve")))
    #submit_button.click()


    pdf = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Viewable and Printable Format")))
    pdf_link = pdf.get_attribute('href')
    pdf.click()
    time.sleep(4)

    except TimeoutException as e:
    print("Algonquin pipeline: Timeout! Could not find element:", e)
    except NoSuchElementException as e:
    print("Algonquin pipeline: No such element:", e)
    except ElementClickInterceptedException as e:
    print("Algonquin pipeline: Click intercepted:", e)
    except Exception as e:
    print("Algonquin pipeline: Unexpected error:", type(e).__name__, e)
    finally:
    driver.quit()

    if __name__ == "__main__":
    algonquin_oacy()

    Continue reading...

Compartilhe esta Página