2017-07-18 2 views
1

Notre application a une page où vous pouvez télécharger un fichier. Le code que j'ai écrit utilisera SendKeys() pour envoyer le chemin de fichier à la balise input du composant de téléchargement de fichier. Cependant, cela ne fonctionne pas sur cette page.Télécharger le fichier sur le tag d'entrée avec Selenium Webdriver

string filepath = Path.GetFullPath(Directory.GetCurrentDirectory() + @"\..\..\..\Test Files\" + filename); 
uploadInput.Click(); 
uploadInput.SendKeys(filepath); 

J'ai confirmé que le chemin du fichier est définitivement correct. J'ai également confirmé que l'élément WebDriver est également correct. Et, ce code ne fonctionne sur une forme totalement séparée de notre application. Je suppose que la façon dont ce composant de téléchargement de fichiers est codé ne doit pas être compatible avec cette méthode.

Quelles autres options ai-je pour télécharger un fichier? Remarque, le contrôle de l'explorateur de fichiers système est totalement hors de question compte tenu de l'environnement dans lequel nos tests sont exécutés.

EDIT: J'ai confirmé que l'étiquette d'entrée reçoit effectivement le fichier que je spécifie. Cependant, la validation personnalisée du formulaire semble penser que rien n'a été téléchargé. Cela pourrait être quelque chose que je dois résoudre avec nos développeurs.

+1

Est-ce un élément de téléchargement de fichier standard HTML Ou est-ce un téléchargement fichier personnalisé? – Purus

+0

Jetez un oeil à ce fil, qui a une solution appropriée pour vous: https://stackoverflow.com/questions/3300580/webdriver-file-upload –

Répondre

0

Essayez de remplacer votre chemin de

@"\..\..\..\Test Files\" + filename 

to 

"\\..\\..\\..\\Test Files\\" + filename 

OU

var path= new System.Uri(""\..\..\..\Test Files\" + filename"); 
var bakedPath = uri.AbsoluteUri;