Pourquoi sélectionner des fichiers à partir d'un navigateur ?
Lorsque l'on réalise des scénarios d'affaires impliquant des solutions web, il y a un cas qui revient fréquemment : les interactions avec le système d'exploitation, et en particulier la sélection des fichiers pour les télécharger sur le serveur web ( nous parlons d'upload).
Cette fonctionnalité est en effet mise en œuvre par tous les outils gérant des données métier : ERP, GED, PLM, CRM ...
La fonction de téléchargement est implémentée nativement dans tous les navigateurs car ils doivent respecter la norme HTTP qui spécifie comment ce transfert de fichiers s'effectue.
Tous les navigateurs ont donc implémenté un menu de sélection de fichiers sur l'ordinateur ou sur un accès réseau, et le transmettent ensuite au serveur. Cela implique généralement l'utilisation d'une fenêtre modale de sélection de fichiers dont l'implémentation dépend de l'environnement de bureau, mais chaque navigateur peut avoir sa propre implémentation.
Problèmes causés par l'automatisation des tests
Cela entraîne deux types de problèmes lors de l'automatisation de cette procédure dans un test
- Problème 1: Le logiciel de test doit être capable de s'interfacer avec la partie "bureau" du navigateur. Dans ce cas, s'appuyer sur la page HTML et le DOM n'est pas suffisant, il faut soit récupérer et reconnaître la structure interne des composants et contrôles des navigateurs, soit utiliser la reconnaissance graphique...
- Problème 2: La "sélection de fichiers" peut varier fortement d'un navigateur à l'autre, ce qui nécessite des adaptations en fonction du navigateur utilisé.
Solution au problème 1 : Agilitest est une solution multicanal
Agilitest est une solution de test intégrée qui supporte l'utilisation de différentes technologies applicatives (web, desktop, ...) au sein d'un même test. Nous utiliserons un basculement DOM-desktop.
Le problème 1 est facilement traité par Agilitest et voici la solution :
- Ouvrez un canal sur votre application et exécutez votre test jusqu'à la partie téléchargement.
- Lorsque la fenêtre de sélection du fichier s'ouvre, il suffit d'appuyer sur la touche "ALT" de votre clavier pour passer du mode de reconnaissance des composants du DOM au mode de reconnaissance des composants du bureau. Là, vous pourrez naviguer dans votre fenêtre de sélection du fichier.
- A la fin de la sélection de votre fichier, vous pouvez fermer la fenêtre modale et utiliser la touche "ALT" pour revenir à la partie web avec un DOM.

Astuce : Pour plus de robustesse, nous vous conseillons de placer un fichier dans une arborescence facilement accessible de votre système de fichiers et que vous pouvez reproduire partout, par exemple en "accès rapide" sous Windows Explorer.
Solution au problème 2 : Agilitest sait comment gérer le comportement spécifique des navigateurs.
Le problème 2 est géré avec Agilitest à l'aide de sous-scripts établis via un fichier de données (CSV) dans la combinaison suivante data-driven testing fichier de données (CSV) dans la combinaison suivante :
- Appels d'un premier sous-script alimenté par le paramètre "navigateur" en colonne du fichier CSV. Nous récupérons le nom du navigateur pour itérer le lancement du même test sur plusieurs navigateurs.
- Appeler les sous-scripts suivants dont le nom est composé à partir du paramètre "browser" du premier sous-script. Par exemple : script_chrome.ats, script_opera.ats, etc. Nous utilisons le nom du navigateur pour personnaliser le nom du script exécuté.
La solution proposée permet de gérer les différences de comportement des navigateurs. Cependant, nous ne vous recommandons pas de l'utiliser pour les opérations suivantes, qui sont gérées directement par Agilitest pour tous les navigateurs :
- Naviguer vers une URL, vers la page précédente, vers la page suivante, vers la page d'accueil ...
- Fermeture de la fenêtre
- Changement d'onglet
Cela rendrait vos tests non génériques, ce qui n'est pas souhaitable.