Selenium RC > comment faire pour télécharger un fichier à l'aide de attachFile()
Je suis en utilisant Selenium RC avec le framework Junit. Je suis en train de télécharger un fichier à l'aide de attachFile() la méthode.
attachFile: (Information collected from selenium API http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/java/com/thoughtworks/selenium/Selenium.html#attachFile(java.lang.String,%20java.lang.String))
void attachFile(java.lang.String fieldLocator,
java.lang.String fileLocator)
Sets a file input (upload) field to the file listed in fileLocator
Parameters:
fieldLocator - an element locator
fileLocator - a URL pointing to the specified file. Before the file can be set
in the input field (fieldLocator), Selenium RC may need to transfer the file to
the local machine before attaching the file in a web page form. This is common in
selenium grid configurations where the RC server driving the browser is not the
same machine that started the test. Supported Browsers: Firefox ("*chrome") only.
Quelqu'un peut-il me dire comment faire pour définir "introduction". Je ne reçois pas l'URL à spécifier ici. Merci de me donner un exemple si possible.
quelqu'un là pour répondre à cette requête??? plz aidez moi...
OriginalL'auteur Saara | 2009-11-10
Vous devez vous connecter pour publier un commentaire.
C'est une vieille question, mais récemment, j'ai résolu le problème en faisant ce
navigateur est juste une variable contenant ce navigateur, le Sélénium, le script est en cours d'exécution et le code est bien évidemment en java.
Pour IE, uploadFile.exe est une auto c'script qui ressemble à ceci.
Essentiellement, il attrape le titre de la fenêtre, il maximise, les entrées du fichier à télécharger, clique sur le bouton "select" et va de nouveau pour le Sélénium, je l'ai testé sous IE 8, mais je ne vois pas pourquoi tout IE qui est pris en charge par auto c'est _IE bibliothèque ne serait pas capable de gérer cela.
J'ai vu beaucoup de robot scripts et firefox hacks où vous activer le javascript pour faire les choses supplémentaires. Ces deux nécessitent pas de modification du navigateur.
Je m'excuse pour le manque de commentaires, ce code est toujours en cours.
+1 de google chrome ainsi
OriginalL'auteur Gus
J'ai la solution pour ce faire, utilisez le sélénium.méthode focus et le sélénium.keyPressNative/keyReleaseNative méthodes.
Vous aurez besoin pour donner le focus à la zone de texte à l'aide de:
sélénium.focus (zone de texte"locator");
Alors si votre fichier d'entrée est C:\tools\File.txt vous devez taper les lettres comme:
sélénium.keyDownNative("16"); //MAJ SUR
sélénium.keyPressNative("67"); //c maj en fait C
sélénium.keyPressNative("59"); //; Maj en fait : (vous ne pouvez pas faire du côlon directement)
sélénium.keyUpNative("16"); //MAJ OFF
sélénium.keyPressNative("47"); //barre oblique
sélénium.keyPressNative("84"); //t
sélénium.keyPressNative("79"); //o
sélénium.keyPressNative("79"); //o
sélénium.keyPressNative("76"); //l
sélénium.keyPressNative("83"); //s
sélénium.keyPressNative("47"); //barre oblique
sélénium.keyDownNative("16"); //MAJ SUR
sélénium.keyPressNative("70"); //f maj rend F
sélénium.keyUpNative("16"); //MAJ OFF
sélénium.keyPressNative("73"); //je
sélénium.keyPressNative("76"); //l
sélénium.keyPressNative("69"); //e
sélénium.keyPressNative("46"); //.
sélénium.keyPressNative("84"); //t
sélénium.keyPressNative("88"); //x
sélénium.keyPressNative("84"); //t
sélénium.keyPressNative("10"); //Entrer
sélénium.keyReleaseNative("10"); //Entrer
J'ai fini le sequqnce avec une Entrée de caractères. Parfois, cela ne fonctionne pas, vous devrez peut-être cliquez sur le bouton (si vous connaissez l'élément localisateur pour elle).
a) Il est seulement appelé à un antislash en français, en anglais, c'est une barre oblique inverse b) Ceux qui sont Java codes de Touches, de sorte qu'elles fonctionnent indépendamment de ce clavier vous avez branché. c) Vous avez raison que cela ne fonctionne pas avec tous les Systèmes d'exploitation, mais n'entrant le chemin d'accès comme une chaîne de caractères -- des hypothèses doivent être faites de toute façon. C'est une belle solution de contournement
OriginalL'auteur Saara
"introduction" n'est pas une url mais un localisateur comme précisé au dessus dans la javadoc du Sélénium classe.
C'est le localisateur de l'entrée utilisée pour sélectionner un fichier.
La "fieldLocator" est une url pointant vers le fichier que vous souhaitez définir dans le champ de saisie du formulaire, comme indiqué dans la doc que vous citez.
Avec Firefox à chrome mode (browserId=*chrome à la place de *firefox), cela fonctionne comme prévu. Il est documenté pour travailler uniquement avec ce browserId)
Par exemple : attachFile("uploadField", Fil.currentThread().getContextClassLoader().getResource("fichiers/échantillon.pdf").toString());
Je pense que c'est l'inverse.
OriginalL'auteur joe-mojo
Ma solution pour cela est d'utiliser le Sélénium-2 en RC mode d'émulation. Cela vous permet de garder votre héritage Sélénium-1 des essais, mais commutateur de Sélénium-2 api lorsque cela est nécessaire pour effectuer des tâches comme l'upload de fichiers.
Sélénium-2 est actuellement en version Bêta, mais semble être relativement stable. Mais tout n'est pas que le Sélénium-1 peut faire est pris en charge par le Sélénium-2 RC mode d'émulation afin de réfléchir à deux fois avant d'aller de cette façon.
Plus à ce sujet ici:
http://seleniumhq.org/docs/09_webdriver.html#emulating-selenium-rc
OriginalL'auteur Sebastien B.
À L'Aide De Sélénium /Rspec /Internet Explorer
Ma solution a été de créer un script AutoIt sur ma machine windows
Puis exécutez le en tant qu'administrateur sur la machine windows. Droit-cliquez sur le fichier exe et exécuter en tant qu'administrateur.
Puis rspec fait une page.cliquez sur "identifiant de votre bouton parcourir". Lorsque la Fenêtre de navigation s'ouvre sur la machine windows, AutoIt autofills la zone de texte et la ferme. Espérant que cela aide quelqu'un parce que cela a été me rend fou.
OriginalL'auteur Bill Sloane
Vous pouvez essayer ce script AutoIt. Fondamentalement, il vous attend pour sélecteur de fichier de la fenêtre. Puis la pénètre chemin d'accès au fichier et d'envoyer l'entrée rapide. À la fin vérifie si il y a un pop-up message d'erreur, le cas échéant, il lit le texte et définir exitcode à 1, si non défini code de sortie à 0.
Le script s'assure également que le sélecteur de fichier de la fenêtre est fermée.
Le script peut être converti à l'exécutable (.exe) par Aut2Exe - il est important de marque de la console? case, Après que exe peuvent et exécuté à partir de java
(Runtime.getRuntime().exec()).
Il y a aussi une chose importante pour l'exécuter, cliquez sur le bouton de téléchargement de fichiers dans le thread séparé.
Sinon, le sélénium se bloque en attente de cliquer sur la commande la finition, ce qui n'arrive jamais, puisque Sélecteur de Fichiers de windows a été ouvert et non fermé.
Le script:
OriginalL'auteur moonio
Son beaucoup plus facile à l'aide de $sel->type et $sel->se concentrer. Ci-dessous est un bon article.
http://bitsilearn.blogspot.com/
OriginalL'auteur shadeslayer
Je viens avec succès les fichiers téléchargés à l'aide de Sélénium mis à utiliser firefox comme navigateur. Je suppose qu'ils n'ont pas mis à jour la documentation encore.
Je suis en utilisant le Ruby client, donc c'était quelque chose comme cela pour le faire fonctionner
OriginalL'auteur Huliax