Проблема: программа работает без ошибок, но файл не загружается в каталог C:/Users/timit/Downloads. Я проверил, что нажатие кнопки работает должным образом.
Вот код, который я использую:
Код: Выделить всё
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import os # For environment variables
# Chrome setup for file download
chrome_options = Options()
chrome_options.add_argument(r"user-data-dir=C:\Users\YourUser\AppData\Local\Google\Chrome\User Data") # Profile path
chrome_options.add_argument("--profile-directory=ProfileName") # Profile name
prefs = {
"download.default_directory": "C:/Users/YourUser/Downloads",
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
# Login details (not included in this snippet)
client_code = os.getenv('CLIENT_CODE', 'YourClientCode')
username = os.getenv('USERNAME', 'YourUsername')
password = os.getenv('PASSWORD', 'YourPassword')
# Navigate to login page
driver.get('https://login.tharanis.hu/belep.php')
# Login steps
driver.find_element(By.XPATH, '//*[@id="ukod"]').send_keys(client_code)
driver.find_element(By.XPATH, '//*[@id="username"]').send_keys(username)
driver.find_element(By.XPATH, '//*[@id="password"]').send_keys(password)
driver.find_element(By.XPATH, '//*[@id="okb"]').click()
time.sleep(5)
# Navigate through menu and click download
WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="menu_main"]/li[3]'))
).click()
WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="menu_aruforgalom"]/li[3]/ul/li[1]/a'))
).click()
WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="rakkeszw_footer"]/table/tbody/tr/td/input'))
).click()
# Wait for the download to complete
time.sleep(10)
driver.quit()
Убедился, что каталог загрузки правильно установлен в настройках.
Проверил настройки браузера, чтобы убедиться, что загрузка не требует подтверждения.Использовалась новая установка ChromeDriver.
Вопросы:
Что может быть причиной того, что файл не загружается?
Есть ли дополнительные настройки браузера или Selenium, которые мне следует настроить? ?
Может ли эта проблема быть связана с запросами на стороне сервера или аутентификацией?
Будем благодарны за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/792 ... oad-button
Мобильная версия