[JAVA] Téléchargement automatique de fichiers avec l'ancienne gemme Ruby Que faire avec Watir

À propos de cet article

J'écrivais un script pour télécharger des fichiers sur un site Web à Watir, C'est un mémorandum parce que j'ai résolu le problème qu'il était difficile de trouver des informations dans l'ancien environnement.

environnement

CentOS Linux 7  Ruby 2.0.0p648 Le joyau des spécifications est Watir Le navigateur utilise Firefox, mais d'autres navigateurs tels que Chrome

Chose que tu veux faire

Je souhaite utiliser Watir pour télécharger un fichier sur un site Web en lançant un script automatique. Sur l'écran de téléchargement, appuyez sur le bouton appelé Sélectionner un fichier, et lorsque l'écran de sélection de fichier apparaît, sélectionnez un fichier à partir de là et téléchargez-le.

Trébucher

Le comportement de sélection d'un fichier à partir de l'écran de téléchargement ne fonctionne pas. Lorsque l'écran de sélection de fichier standard du système d'exploitation s'ouvre, le fonctionnement du script n'atteint pas s'il fonctionne en dehors du navigateur.

Ce que j'ai essayé

  1. Puisque javascript peut être exécuté dans watir J'ai essayé de copier et coller en utilisant un presse-papiers, etc., mais en premier lieu, les spécifications de l'écran sont via le presse-papiers dans le script Il semble que la pâte ne soit pas acceptée et que la pâte sort silencieusement sans générer d'erreur.
  2. Déclenchez de force un événement clé à partir de javascript. J'ai essayé de forcer la touche Enger et la touche Tab en exécutant la commande suivante, mais L'accent est-il mis sur le navigateur lui-même? Il semble que l'écran de sélection de fichiers n'accepte pas les raccourcis clavier.
    browser.execute_script("
                document.dispatchEvent( new KeyboardEvent( 'keydown', { keyCode: 86 , ctrlKey: true , key: 'V' }) );
    ")

(Référence: https://ameblo.jp/personwritep/entry-12456996738.html) J'ai essayé des choses telles que, mais il n'effectue pas d'opérations telles que la lecture du fichier cible.

Spécifications du site Web / image d'écran

L'écran de téléchargement des fichiers est ci-dessous et vous pouvez appuyer sur le bouton Sélectionner un fichier.

image.png

Ensuite, l'écran de sélection de fichier standard du système d'exploitation suivant apparaîtra, et il est conçu pour télécharger des fichiers à partir de là. image.png

Lorsque vous utilisez manuellement, vous pouvez sélectionner le fichier après avoir appuyé sur le bouton Sélectionner le fichier, ou vous pouvez télécharger le fichier par glisser-déposer.

terminé

En conséquence, c'est fait.

$browser.file_field(:id, //).set("filepath\/...\/file.png ")

Articles référencés

https://stackoverflow.com/questions/15163816/automating-a-file-upload-with-watir-in-chrome-on-osx https://www.rubydoc.info/gems/watir/1.8.1/Watir%2FContainer:file_field

Un dernier mot

Pas de Watir.

Recommended Posts

Téléchargement automatique de fichiers avec l'ancienne gemme Ruby Que faire avec Watir
Comment réaliser le téléchargement de fichiers avec Feign
J'ai essayé d'implémenter le téléchargement de fichiers avec Spring MVC
Téléchargement de fichiers avec Spring Boot (ne pas utiliser de fichier en plusieurs parties)
Que faire si vous avez installé Ruby avec rbenv mais que la version ne change pas
[Facile] Comment formater automatiquement les fichiers Ruby erb avec vsCode
Qu'advient-il des variables d'instance lors de la copie d'une instance avec ruby
Téléchargement de fichiers avec Spring Boot
Que faire si une erreur d'authentification de clé SSH se produit lors du déploiement automatique sur EC2 avec Capistrano
Que faire lorsque la validation ne fonctionne pas avec l'action de mise à jour
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Comment réaliser un téléchargement de fichiers volumineux avec Rest Template of Spring
Que faire lorsqu'une exception javax.batch.operations.JobStartException se produit
Que faire si JavaMail ne peut pas être utilisé avec OpenJDK 11 ou version ultérieure
[IOS] Que faire lorsque l'image est remplie d'une seule couleur
Que faire si les modifications ne sont pas reflétées après le déploiement automatique vers EC2
Que faire lorsque CentOS ne peut pas être démarré avec VirtualBox sur Catalina
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
Que faire si le déploiement échoue dans Heroku (application Ruby non détectée)
Remarques sur ce qu'il faut faire lorsque EC2 est configuré avec t2.micro
Si vous voulez créer un fichier zip avec Ruby, c'est rubyzip.