Le fait que cela fonctionne en mode débogue, c’est déjà « un début ».
error.png
- Même si cela n’affiche pas d’erreur, étant une capture de l’écran au moment du "timeout’ cela donne quand même un indice. D’acprès ce que je comprend de la description, c’est une page graphique ou l’on voit le bouton « Télécharger la période », et non une image ou l’on voit le contenu d’un CSV.
Ce n’est pas en soi un problème de ChromeDriver qui entraine un timeout. Je me demande s’il n’y pas un problème d’écriture du fichier csv. Le script conclus à un timeout s’il ne voit pas l’apparition du fichier à l’endroit attendu qui peut être défini dans la config et qui devrait donc s’écrire à l’endroit « /config/appdaemon/apps/veolia-idf/historique_jours_litres.csv » . Je suppose que ce fichier ne se trouve pas à cet endroit (sinon, le script a un problème pour « le voir »).
S’il y a un fichier « chromedriver.log » (dans mon cas « /config/chromedriver »), on y trouve une trace de la recherche du bouton Télécharger la période (avec « charger la p » pour éviter les accents):
[1678495581.991][INFO]: [dea49767b4d98367e93f43619d223fc6] COMMAND FindElement {
"using": "xpath",
"value": "//button[contains(text(),\"charger la p\")]"
}
Suivi d’une réponse:
[1678495582.065][INFO]: [dea49767b4d98367e93f43619d223fc6] RESPONSE FindElement {
"element-6066-11e4-a52e-4f735466cecf": "d9f452ae-e0a4-40db-b03c-bf9063a16f56"
}
Ou l’identifiant sert plus tard dans une demande de clic (sur ce bouton pour télécharger, qui mène dans mon cas rapidement à la fin du script (divers ok):
[1678495592.232][INFO]: [dea49767b4d98367e93f43619d223fc6] COMMAND ClickElement {
"id": "d9f452ae-e0a4-40db-b03c-bf9063a16f56"
}
[1678495592.232][INFO]: [dea49767b4d98367e93f43619d223fc6] COMMAND ClickElement {
"id": "d9f452ae-e0a4-40db-b03c-bf9063a16f56"
}
[1678495592.232][INFO]: Waiting for pending navigations...
[1678495592.234][INFO]: Done waiting for pending navigations. Status: ok
[1678495592.504][INFO]: Waiting for pending navigations...
[1678495592.530][INFO]: Done waiting for pending navigations. Status: ok
[1678495592.530][INFO]: [dea49767b4d98367e93f43619d223fc6] RESPONSE ClickElement
[1678495592.702][INFO]: [dea49767b4d98367e93f43619d223fc6] COMMAND Quit {
}
[1678495592.805][INFO]: [dea49767b4d98367e93f43619d223fc6] RESPONSE Quit
Il y a peut-être une indication de problème d’écriture.
Personnellement j’ai défini "download_folder": "/config/csv",
, avec un répertoire /config/csv qui existe.
Et voici ma configuration dans ‹ apps.yaml › ou keep_csv: true
permet de garder le fichier csv après exécution du script:
veolia_idf:
module: veolia_idf
class: VeoliaIDF
log_folder: /config
config_file: /config/veolia-idf/config.json
keep_csv: true
outfile: /config/appdaemon/apps/test.log
errfile: /config/appdaemon/apps/testerr.log
Il est possible de définir et augmenter la valeur « timeout » dans le fichier de configuration « …json », je suggère aussi de définer le download_folder à un autre endroit pour vérifier si ce n’est donc pas un pb d’écriture:
[...]
"download_folder": "/config",
"type": "ha",
"timeout": "90"
}
J’ai testé de mon côté sans mettre le download_folder, et le script fini bien en laissant le fichier sous /config/appdaemon/apps/veolia_idf/historique_jours_litres.csv .