2010-06-15 14 views
1

J'ai besoin de télécharger le fichier sur le site Web. Mais Avoir un problème, je ne peux pas choisir le fichier automatique dans le code. Toujours le navigateur me montre choisir la fenêtre de fichier. Quel est le problème dans mon code?Utilisez WatiN pour le fichier de téléchargement d'automatisation sur le site Web

IE ie = new IE("https://www.xxxx.com/WFrmlogin.aspx"); 
FileUploadDialogHandler uploadHandler = new FileUploadDialogHandler(@"D:\065-6405_URGENT.xls"); 

ie.WaitForComplete(); 
ie.TextField(Find.ById("txtUser")).TypeText("login"); 
ie.TextField(Find.ById("txtPassWord")).TypeText("***"); 

ie.Button(Find.ById("btnok")).Click(); 
ie.WaitForComplete(); 


ie.GoTo("https://www.orientspareparts.com/inq/WFrmUpOption.aspx"); 
ie.WaitForComplete(); 

ie.DialogWatcher.Clear(); 
ie.AddDialogHandler(uploadHandler); 
// This code show choose file dialog 
ie.FileUpload(Find.ById("FilUpload")).ClickNoWait(); 


ie.Button(Find.ById("butUpload")).Click(); 
ie.WaitForComplete(); 

Répondre

0

Pourquoi avez-vous besoin de sélectionner dans le dialogue? Essayez de mettre juste le texte:

ie.FileUpload(Find.ById("profile_file")).Text = "C:/Desktop/image.jpg"; 

Je suppose que vous pourriez parler à l'homme qui a posé cette question: WatiN File Upload

0

J'ai eu le même problème. J'utilise un processus de téléchargement GMail-like, donc je voulais tester les cas d'utilisation réels. Juste définir la propriété Text sur mon entrée de fichier cachée n'était pas une option. J'ai fini par utiliser SendKeys pour taper le chemin vers mon fichier, puis j'ai envoyé "{ENTER}" pour soumettre la boîte de dialogue. Je n'aime pas cette solution, surtout pas le sommeil, mais c'était le meilleur que je pouvais faire en moins de 30 minutes.

Si quelqu'un a une meilleure option, faites le moi savoir!