Le sélénium attendre pour le téléchargement?
Je suis en train de tester l'heureux-chemin d'accès pour un morceau de code qui prend du temps à répondre, et puis commence l'écriture d'un fichier à la réponse au flux de sortie, qui invite à une boîte de dialogue de téléchargement dans les navigateurs.
Le problème est que ce processus a échoué dans le passé, la levée d'une exception après cette longue période de travail. Est-il possible de sélénium à wait-for-download
ou équivalent?
J'ai pu jeter un Thread.sleep
, mais ce serait inexact et inutilement de ralentir l'exécution des tests.
Que dois-je faire ici?
OriginalL'auteur Stefan Kendall | 2010-10-12
Vous devez vous connecter pour publier un commentaire.
Donc, vous avez deux problèmes ici:
Ni problemc un être directement résolu par le Sélénium (encore - 2.0 peut aider), mais les deux sont les problèmes solubles. Le premier problème peut être résolu par l'interface graphique de l'automatisation des outils, tels que AutoIT. Mais ils peuvent également être résolus par le simple envoi d'un système automatisé de pression de touche au niveau de l'OS qui simule la touche entrée (fonctionne pour Firefox, un peu plus difficile sur certaines versions de Chrome et Safari). Si vous êtes à l'aide de Java, vous pouvez utiliser le Robot pour le faire. D'autres langues ont les mêmes boîtes à outils pour faire une telle chose.
Le deuxième problème est probablement mieux résolus avec une sorte de solution proxy. Par exemple, si votre navigateur est configuré pour passer par un proxy et proxy a une API, vous pouvez lancer une requête au proxy avec l'API à poser lors de l'activité du réseau est terminée.
Que ce que nous faisons au http://browsermob.com, qui est une startup, j'ai fondé qui utilise le Sélénium pour faire des tests de charge. Nous avons libéré une partie de la procuration code en open source, disponible à http://browsermob.com/tools.
Mais deux problèmes persistent:
Espère que vous aide à identifier vos différentes options. Bonne chance!
OriginalL'auteur Patrick Lightbody
J'ai eu le même problème. J'ai inventé quelque chose pour résoudre le problème. Un tenter fichier est créé par Python".la partie " extension. Donc, si nous avons toujours le temp, python, il est possible d'attendre 10 secondes et vérifiez de nouveau si le fichier est téléchargé ou pas encore.
OriginalL'auteur Moohebat
C'est Chrome-test-seule solution pour contrôler les téléchargements avec javascript..
À l'aide de WebDriver (Selenium2) il peut être fait au sein de google Chrome chrome:// qui est du HTML/CSS/Javascript:
Il y a d'autres Download.le prototype.fonctions de "chrome://downloads/downloads.js"
Ce suites vous si vous avez besoin de tester une note d'information par exemple. causé par un fichier en pièce jointe le démarrage de l'activité, et non le fichier lui-même.
Naturellement, vous avez besoin de contrôler l'étape 1. - mentionné par Patrick ci-dessus - et par ce que vous contrôlez l'étape 2. POUR LE TEST, pas pour la fonctionnalité de fichier à la fin du téléchargement /annuler.
Voir aussi : Javascript: Annuler/Stop Les Demandes D'Image qui est relatif au Navigateur de s'arrêter.
OriginalL'auteur Santeri Vesalainen
Cela relève de la "choses qui ne peuvent pas être automatisés" de la catégorie. Le sélénium est construit avec JavaScipt et en raison de JavaScript sandbox restrictions qu'il ne peut pas accéder aux téléchargements.
Sélénium 2 pourrait être en mesure de le faire une fois les Alertes/les Invites ont été mis en œuvre, mais que cela ne se produira pas pendant un petit moment encore.
OriginalL'auteur AutomatedTester
Si vous voulez vérifier la boîte de dialogue de téléchargement, essayez avec AutoIt. - Je l'utiliser pour le téléchargement et le téléchargement de fichiers. À l'aide de AutoIt avec Se RC est plus facile.
OriginalL'auteur Rajasankar
*Syntaxe Ruby
OriginalL'auteur esakiraja