Я пытаюсь скачать PDF с python, из события java, а не html, и я уже изменил свои настройки Firefox, загрузка происходит, но при попытке открыть файл говорит, что файл должен быть поврежден или поврежден, я заметил, что когда веб-драйвер firefox выполняет загрузку, он не загружает все его байты, поэтому я не знаю, не дождется ли он завершения загрузки или что-то отсутствует в моем коде :
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/pdf")
fp.set_preference("pdfjs.disabled",True)
fp.set_preference("browser.download.dir", "C:\\Users\\carlo\\Desktop\\
driver = webdriver.Firefox(firefox_profile=fp)
driver.get(the url which i cant give here)
Затем я открываю новое окно в коде и беру это под контроль, которое является веб-окном PDF, и использую это:
element= WebDriverWait(driver, 10).\until(EC.visibility_of_element_located((By.XPATH,"//*[@id='download']")))
element.click()
Дополнительно к этому, у него нет URL; это Java-событие, которое не сопровождается этим, и теперь оно начинает загрузку, но портит его. Я пытался подождать с time.sleep
, но проблема все еще та же. Если есть способ установить предпочтение прямой загрузки без открытия нового окна с драйвером, это должно помочь, я что-то упустил?