[JAVA] Automatischer Datei-Upload mit altem Ruby-Edelstein Was tun mit Watir?

Über diesen Artikel

Ich habe ein Skript geschrieben, um Dateien auf eine Website in Watir hochzuladen. Es ist ein Memorandum, weil ich das Problem gelöst habe, dass es schwierig war, Informationen in der alten Umgebung zu finden.

Umgebung

CentOS Linux 7  Ruby 2.0.0p648 Technische Daten Juwel ist Watir Der Browser verwendet Firefox, aber auch andere Browser wie Chrome

Was du machen willst

Ich möchte eine Datei auf eine Website hochladen, indem ich mit Watir ein automatisches Skript starte. Drücken Sie auf dem Upload-Bildschirm die Schaltfläche Datei auswählen. Wenn der Dateiauswahlbildschirm angezeigt wird, wählen Sie eine Datei aus und laden Sie sie hoch.

Stolpern

Das Verhalten beim Auswählen einer Datei auf dem Upload-Bildschirm funktioniert nicht. Wenn der Bildschirm zur Auswahl der Standarddateien des Betriebssystems geöffnet wird, erreicht die Ausführung des Skripts nicht, ob es außerhalb des Browsers ausgeführt wird.

Was ich versucht habe

  1. Da Javascript in Watir ausgeführt werden kann Ich habe versucht, mit einer Zwischenablage usw. zu kopieren und einzufügen, aber in erster Linie sind die Bildschirmspezifikationen über die Zwischenablage im Skript Es scheint, dass die Paste nicht akzeptiert wird und die Paste lautlos endet, ohne einen Fehler auszulösen.
  2. Lösen Sie zwangsweise ein Schlüsselereignis aus Javascript aus. Ich habe versucht, die Enger-Taste und die Tabulatortaste zu erzwingen, indem ich den folgenden Befehl ausgeführt habe, aber Liegt der Fokus auf dem Browser selbst? Es scheint, dass der Dateiauswahlbildschirm keine Tastenbefehle akzeptiert.
    browser.execute_script("
                document.dispatchEvent( new KeyboardEvent( 'keydown', { keyCode: 86 , ctrlKey: true , key: 'V' }) );
    ")

(Referenz: https://ameblo.jp/personwritep/entry-12456996738.html) Ich habe solche Dinge wie versucht, aber es werden keine Vorgänge wie das Lesen der Zieldatei ausgeführt.

Website-Spezifikationen / Bildschirmbild

Der Bildschirm zum Hochladen von Dateien befindet sich unten und Sie können auf die Schaltfläche "Datei auswählen" klicken.

image.png

Anschließend wird der folgende Bildschirm zur Auswahl von Standarddateien für das Betriebssystem angezeigt, in dem Dateien von dort hochgeladen werden können. image.png

Wenn Sie von Hand arbeiten, können Sie die Datei auswählen, nachdem Sie auf die Schaltfläche "Datei auswählen" geklickt haben, oder Sie können die Datei durch Ziehen und Ablegen hochladen.

erledigt

Als Ergebnis ist es geschafft.

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

Artikel, auf die verwiesen wird

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

Ein letztes Wort

Kein Watir.

Recommended Posts

Automatischer Datei-Upload mit altem Ruby-Edelstein Was tun mit Watir?
So erreichen Sie das Hochladen von Dateien mit Feign
Ich habe versucht, das Hochladen von Dateien mit Spring MVC zu implementieren
Datei-Upload mit Spring Boot (keine mehrteilige Datei verwenden)
Was tun, wenn Sie Ruby mit rbenv installiert haben, die Version sich jedoch nicht ändert?
[Einfach] So formatieren Sie Ruby erb-Dateien automatisch mit vsCode
Was passiert mit Instanzvariablen beim Kopieren einer Instanz mit Ruby?
Datei-Upload mit Spring Boot
Was tun, wenn während der automatischen Bereitstellung auf EC2 mit Capistrano ein SSH-Schlüsselauthentifizierungsfehler auftritt?
Was tun, wenn die Validierung mit der Aktualisierungsaktion nicht funktioniert?
[Rails] Was tun, wenn Sie mit form_with keine Parameter abrufen können?
So erzielen Sie mit Rest Template of Spring einen großen Datei-Upload
Was tun, wenn eine javax.batch.operations.JobStartException auftritt?
Was tun, wenn JavaMail nicht mit OpenJDK 11 oder höher verwendet werden kann?
[IOS] Was tun, wenn das Bild mit einer Farbe gefüllt ist?
Was tun, wenn die Änderungen nach der automatischen Bereitstellung in EC2 nicht übernommen werden?
Was tun, wenn CentOS nicht mit VirtualBox unter Catalina gestartet werden kann?
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
Was tun, wenn die Bereitstellung in Heroku fehlschlägt (Ruby-App nicht erkannt)?
Hinweise zur Vorgehensweise bei der Einrichtung von EC2 mit t2.micro
Wenn Sie mit Ruby eine Zip-Datei erstellen möchten, ist dies Rubyzip.