Problemas para hacer click dentro de una web

Hola comunidad les escribo porque tengo un problema, estoy intentando hacer un script para que navegue dentro de una web, ingresa correctamente y navega pero llega a determinada parte y no hace click y se termina el script.
Alguien me podria dar una mano les paso mi codigo y las imagenes de la pagina.
EL problema esta en articulos no hace click

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
import os
import time

Configuración de las opciones de Chrome

chrome_options = Options()
prefs = {
“download.default_directory”: r"C:\Users\tradexuy12\Desktop\power bi\ventas\ventas por articulo y cliente",
“download.prompt_for_download”: False,
“download.directory_upgrade”: True,
“safebrowsing.enabled”: True
}

chrome_options.add_experimental_option(“prefs”, prefs)

Instalar ChromeDriver si es necesario y arrancar el navegador

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)

Ingresar al sitio web

driver.get(‘https://apperpconsulting.uy/facturacion2/inicio.php’)

try:
wait = WebDriverWait(driver, 20)

# Ingresar credenciales y acceder
username_input = wait.until(EC.presence_of_element_located((By.NAME, 'USU_User')))
password_input = wait.until(EC.presence_of_element_located((By.NAME, 'USU_Pass')))
username_input.send_keys('usuario')
password_input.send_keys('pass')

login_button = wait.until(EC.element_to_be_clickable((By.ID, 'iniciar_sesion')))
login_button.click()

# Esperar a que se cargue el menú lateral y navegar a 'Informes'
informes_link = wait.until(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(), 'Informes')]/ancestor::a")))
informes_link.click()

# Hacer clic en 'Artículos' usando JavaScript y esperar a que el submenú se expanda
articulos_link = wait.until(EC.presence_of_element_located((By.XPATH, "//a[.//span[contains(text(), 'Articulos ')]]")))
driver.execute_script("arguments[0].click();", articulos_link)

# Esperar a que el submenú 'Articulos' se haya expandido
wait.until(EC.presence_of_element_located((By.XPATH, "//ul[contains(@class, 'nav-third-level') and @aria-expanded='true']")))

# Hacer clic en 'Ventas x Artículo x Cliente'
ventas_articulo_cliente_link = wait.until(EC.element_to_be_clickable((By.ID, "menu_ventas_x_articulo_x_cliente")))
ventas_articulo_cliente_link.click()

# Esperar y hacer clic en el botón para descargar el archivo en Excel
excel_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.dt-button.buttons-excel.buttons-html5")))
excel_button.click()
print("Se ha hecho clic en el botón de Excel.")

# Esperar a que el archivo se descargue completamente
time.sleep(10)  # Ajustar este tiempo según sea necesario

# Verificar la descarga y renombrar el archivo
directorio_descargas = r"C:\Users\tradexuy12\Desktop\power bi\ventas\ventas por articulo y cliente"
archivos_descargados = os.listdir(directorio_descargas)
for archivo in archivos_descargados:
    if archivo.endswith('.xlsx'):
        ruta_original = os.path.join(directorio_descargas, archivo)
        ruta_nueva = os.path.join(directorio_descargas, "ventas_por_articulo_y_cliente.xlsx")
        if os.path.exists(ruta_nueva):
            os.remove(ruta_nueva)
        os.rename(ruta_original, ruta_nueva)
        print(f"Archivo descargado y renombrado a: {ruta_nueva}")
        break

except TimeoutException as e:
print(f"Se produjo un error con la carga de la página o el elemento no fue encontrado: {e}")
finally:
driver.quit()
print(“Terminando el script…”)

![image|690x328]


(upload://tMJ7tFlVJuB2FWHrj2bVZhSrWop.png)

Mil gracias!!!