2009-08-10 14 views
0

J'utilise la gemme selenium-client avec Webrat et Cucumber pour tester un projet de rails. J'ai Cucumber mis en place à peu près comme décrit ici: http://wiki.github.com/aslakhellesoy/cucumber/setting-up-seleniumTéléchargement de fichiers à l'aide de la gemme selenium-client

Mon problème est que Selenium est empêché d'effectuer des téléchargements de fichiers. Idéalement, j'aimerais pouvoir répliquer la méthode 'attach_file' du webrat. J'ai essayé d'esquiver le problème en utilisant la méthode 'type' de selenium-client pour taper le chemin vers le fichier requis, mais cela semble échouer.

Quelqu'un at-il une suggestion pour une solution de contournement en utilisant du sélénium-client (c'est-à-dire pas la gemme sélénium ordinaire)?

Répondre

0

J'ai finalement compris cela.

Vous devez utiliser firefox avec le backend chrome, et vous devez spécifier un chemin de fichier absolu.

J'ai fini par créer un module d'aide pour spécifier le chemin de fichier, et un dossier "fixtures" contenant le contenu de test. Voici un aperçu de la solution que j'ai trouvée: http://gist.github.com/214185

Il est donc totalement possible de répliquer la méthode attach_file de Webrat!

1

Le sélénium normal ne peut pas le faire car la sécurité du navigateur empêche le javascript d'écrire dans les éléments input = file. Ceci est une fonction de sécurité afin que votre fichier de mot de passe ne soit pas téléchargé aux pirates si vous allez sur un site qui a été piraté.

http://jira.openqa.org/browse/SEL-63 a les détails