j’essaie d’auditer une page d’un site interne avec Asqatasun v4.0.3 sur un docker en local.
L’audit semble fonctionner correctement, mais lorsque que je regarde le code HTML de la page auditée, je m’aperçoit que le code de la partie générée de la page n’apparaît pas.
J’ai mis les logs en mode DEBUG et je n’ai pas de WARN ni d’ERROR dans les logs, tout semble se dérouler corrrectement.
La page doit mettre un peu trop de temps à charger le contenu, du coup la partie générée n’est pas auditée.
Existe-t-il un paramètre permettant de gérer un timeout pour laisser la page se charger ou une autre solution pour auditer ce genre de page ?
Il y a effectivement un timeout paramétrable (faut que je retrouve le paramètre dans les fichiers de conf). Combien de temps met ta page à se charger? Peut etre est ce qu’il y a une ressource inaccessible? As tu besoin de configurer un proxy?
La page met environ 5 secondes à se charger.
Je n’ai pas eu besoin de paramétrer de proxy, mon site est accessible sans proxy.
Par contre j’ai mis le paramètre bypassUrlCheck à true pour pouvoir y accéder.
J’ai testé plusieurs pages du site et à chaque fois c’est juste la partie générée qui ne s’affiche pas, il s’agit d’un div avec le contenu de la page, les div précédents sont bien présents dans le code html généré.
En cas de ressource inaccessible, est-ce qu’un message s’affiche dans les logs ?
Dans le fichier de conf asqatasun.conf, tu as la propriété pageLoadTimeout dont la valeur est fixée par défaut à 20 (donc 20 secondes).
Essaie de faire varier cette valeur, et de redemarrer, pour voir si cela a un impact
La modification de ce paramètre n’a pas d’impact sur l’audit, j’ai beau mettre un temps super élevé, le temps d’audit reste le même.
L’audit se limite toujours au code source de la page sans la partie générée.
@meriadec est-ce que ta page est visible sur les internets ?
Qu’est-ce que tu utilises comme framework JS + version ? Un truc à tester aussi : prendre un Firefox ESR v52 et tester ta page dedans en local sur ta machine.
La page n’est pas sur les internets, c’est un site interne
Le framework utilisé est emberJS en version 2.18
J’ai testé le site sur un Firefox ESR 52 local, la page s’affiche correctement
La question que je me pose, c’est à quel événement du navigateur ( DOMContentLoaded, window.onload ) correspond cet événement “pageLoad” de selenium ? Dans le cas détaillé par @meriadec, les affichages générés se font peut-être après cet événement “pageLoad” de selenium.
A noter, dans la documentation de selenium (certainement plus récente que la version actuellement utilisée dans Asqatasun), il existe une méthode setScriptTimeout() (pour un timeout sur les js asynchrone).
@fabrice , la page s’affiche correctement avec Firefox 31ESR.
Je n’ai pas la main sur le code, du coup je vais avoir du mal à fournir un exemple.
J’ai trouvé un moyen de contournement en enregistrant la page HTML une fois correctement chargée et en utilisant l’audit de fichier.
Sans exemple, nous ne pourrons pas reproduire le bug exactement. Idéalement, il faudrait connaître les temps DOMContentLoaded , window.onload et le moment où est affiché le contenu qui manque lors des audits.
Autrement, l’idée serait de monter un exemple de toute pièce. Pour ma part, je testerai bien une page avec du JS qui s’exécute bien après DOMContentLoaded et window.onload.