Also habe ich ein bisschen einen Haken getroffen. Ich versuche, einen Testfall zu automatisieren, wo ich mehrere Dateien an einen Eingabeknoten übergeben muss, und ich kann nicht herausfinden, wie das geht. Ich kann entweder Mechanize oder Watir verwenden, habe aber sehr wenig Informationen zu einem Thema gefunden, das in der Automatisierung relativ wichtig erscheint. In den Schnipsel unten benutze ich Watir mit Ruby. Das Hauptproblem, das ich habe, ist, dass es scheint, wenn mehrere Dateien ausgewählt sind, ist der Eingabeknoten nicht mehr sichtbar. Der Eingabeknoten akzeptiert mehrere Dateien, und das Übergeben eines einzelnen Pfads führt zu einem erfolgreichen Upload.Mehrere Dateien an den Eingangsknoten mit Watir übergeben (mit Ruby)
path1 = "/path/to/file.json"
file_field.set path1
Ich würde denken, dass durch eine Art Trennzeichen getrennt in einem String wäre so einfach in mehreren Dateien vorbei mit mehreren Pfaden wie vorbei. Ich bin mit Web Dev aber nicht besonders versiert und kämpfe darum zu begreifen, wo ich überhaupt anfangen sollte. Wenn ich wie so in mehrere Dateien zu übergeben versuchen:
multiple_paths = ("/path/to/file1.json"; "/path/to/file2.json")
file_field.set multiple_paths
es Uploads die zweite Datei gibt aber nicht die erste (macht mich zu denken, vielleicht ist es ihnen nacheinander hochladen, und das zweite ist das Überschreiben).
Denkst du, dass dies mit Watir überhaupt möglich ist? Ich weiß, dass Chrome eine Problemumgehung für das Hochladen mehrerer Dateien mit \ n als Trennzeichen bietet. Gibt es eine ähnliche Problemumgehung für Firefox?
FWIW: sicher, sieht aus wie 'Filefield # set'expects einen einzelnen Pfad als Argument: https://github.com/watir/watir-webdriver/blob/master/lib/watir-webdriver/elements/file_field .rb – orde
Es tut. Ich habe gerade die Chrome-Problemumgehung implementiert. Im Wesentlichen können Sie eine einzelne Zeichenfolge, die durch Pfade getrennt ist, übergeben und mehrere Dateien auf den Eingabeknoten laden. –