2013-08-26 2 views
-2

Je teste une application qui utilise filepicker pour le téléchargement de fichiers:Code permettant de naviguer dans FilePicker avec Watir?

https://www.inkfilepicker.com

J'utilise watir.

J'ai essayé:

def upload_photos 
    $b.link(:text, "Upload Photos").click 
    $b.button(:text, "Choose File").click 
end 

mais le code échoue avec:

`assert_exists': unable to locate element, using {:text=>"Choose File", :tag_name=>"button"} (Watir::Exception::UnknownObjectException 

Est-il possible d'automatiser filepicker avec ajouts watir? Comment?

+2

Vous devriez essayer, puis poser une question sur un particulier partie que vous rencontrez des problèmes avec. En général, je pense que Watir serait capable de travailler (en supposant que je regarde la partie droite de la page). –

+0

Je l'avais essayé mais watir ne voit pas la boîte de dialogue de téléchargement de fichier. J'ai mis à jour la question avec les détails. –

+0

Je ne sais vraiment pas ce que vous essayez d'automatiser. Où est ce bouton "Choisir un fichier"? Nous avons besoin de html de votre application actuelle ou du fait qu'elle utilise infilepicker, quelque part sur le site qui a la même fonctionnalité. –

Répondre

0

Le code

$b.button(:text, "Choose File").click 

a deux problèmes (en supposant que votre filepicker est la même que celle sur la page de démonstration de inkfilepicker):

  1. Le bouton Choisir un fichier est dans une iframe. Quand il s'agit de cadres, vous devez en parler explicitement à Watir.
  2. Le bouton Choisir un fichier n'est pas un bouton normal; c'est le bouton pour un champ de fichier(). Ceux-ci sont accessibles à partir de Watir en utilisant la méthode file_field. Il n'y a pas de support pour simplement cliquer sur le bouton. Au lieu de cela, il existe une méthode set qui va cliquer sur le bouton, sélectionner un fichier à télécharger et fermer la fenêtre.

En supposant que le filepicker dans votre application est le même que celui sur la page de démonstration de inkfilepicker, vous pouvez effectuer les opérations suivantes:

require 'watir-webdriver' 
browser = Watir::Browser.new :firefox 

# File to upload 
file = 'C:\Users\user\Desktop\stuff.jpeg' 

# Go to the demo page, which has a file uploader 
browser.goto 'https://www.inkfilepicker.com/demos/' 

# Click the button that opens the file uploader 
browser.button(:class => 'zip-open-button').click 

# Wait for the dialog to be displayed 
browser.div(:id => 'filepicker_dialog_container').wait_until_present 

# Set the file 
browser.frame(:id => 'filepicker_dialog').file_field(:id => 'fileUploadInput').set(file) 
Questions connexes