Selenium RC > wie hoch-Datei mit attachFile()
Ich bin mit Selenium RC mit Junit-framework. Ich versuche, eine Datei hochzuladen, mit attachFile () - Methode.
attachFile: (Information collected from selenium API http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/java/com/thoughtworks/selenium/Selenium.html#attachFile(java.lang.String,%20java.lang.String))
void attachFile(java.lang.String fieldLocator,
java.lang.String fileLocator)
Sets a file input (upload) field to the file listed in fileLocator
Parameters:
fieldLocator - an element locator
fileLocator - a URL pointing to the specified file. Before the file can be set
in the input field (fieldLocator), Selenium RC may need to transfer the file to
the local machine before attaching the file in a web page form. This is common in
selenium grid configurations where the RC server driving the browser is not the
same machine that started the test. Supported Browsers: Firefox ("*chrome") only.
Kann jemand mir bitte sagen, wie definieren "fileLocator". Ich bin nicht immer die URL angeben, über hier. Bitte geben Sie mir ein Beispiel, wenn möglich.
- wer dort die Antwort auf diese Abfrage??? plz help me out...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine alte Frage, aber ich habe vor kurzem das problem, dies zu tun
browser ist nur eine variable enthalten, was der browser die Selen-Skript wird ausgeführt, und der code ist natürlich in java.
IE, uploadFile.exe ist es ein auto-Skript, das so aussieht.
Es im wesentlichen schnappt sich den Titel des Fensters maximiert es, die Eingänge die Datei hochgeladen werden soll, klickt auf die Schaltfläche auswählen, und geht zurück auf Selen, ich habe es getestet im IE 8 ganz gut, aber ich sehe nicht ein, warum alle den IE, unterstützt durch auto-es ist _IE Bibliothek wäre nicht in der Lage, dies zu behandeln.
Ich habe gesehen, eine Menge von Roboter-scripts und firefox-hacks, wo man javascript aktivieren, um zusätzliche Dinge. Beide erfordern keine änderung der browser.
Ich entschuldige mich für die fehlenden Kommentare, dieser code ist noch im Gange.
Ich habe die Lösung für dieses, verwenden Sie Selen.focus-Methode und Selen.keyPressNative/keyReleaseNative Methoden.
Werden Sie brauchen, um den Fokus auf das Textfeld mit:
Selen.focus("text box locator");
Dann, wenn sich Ihre input-Datei ist C:\tools\File.txt Sie müssen geben Sie die Buchstaben etwa so:
Selen.keyDownNative("16"); //SHIFT AUF
Selen.keyPressNative("67"); //c shift macht es C
Selen.keyPressNative("59"); //; Shift macht es : (Sie können nicht tun, Doppelpunkt direkt)
Selen.keyUpNative("16"); //SHIFT AUS
Selen.keyPressNative("47"); //slash
Selen.keyPressNative("84"); //t
Selen.keyPressNative("79"); //o
Selen.keyPressNative("79"); //o
Selen.keyPressNative("76"); //l
Selen.keyPressNative("83"); //s
Selen.keyPressNative("47"); //slash
Selen.keyDownNative("16"); //SHIFT AUF
Selen.keyPressNative("70"); //f shift macht es F
Selen.keyUpNative("16"); //SHIFT AUS
Selen.keyPressNative("73"); //ich
Selen.keyPressNative("76"); //l
Selen.keyPressNative("69"); //e
Selen.keyPressNative("46"); //.
Selen.keyPressNative("84"); //t
Selen.keyPressNative("88"); //x
Selen.keyPressNative("84"); //t
Selen.keyPressNative("10"); //Geben Sie
Selen.keyReleaseNative("10"); //Geben Sie
Hab ich beendete die sequqnce mit einem 'Enter' - Zeichen. Manchmal ist dies nicht funktioniert, so müssen Sie möglicherweise klicken Sie auf die Schaltfläche (wenn Sie wissen, das element locator für Sie).
"fileLocator" ist keine url sondern ein locator angegeben werden wie oben in der javadoc-Selen-Klasse.
Es ist der locator der Eingabe verwendet, um eine Datei auszuwählen.
Den "fieldLocator" ist ein url auf die Datei, die Sie festlegen möchten, in das Eingabefeld im Formular, wie angegeben, in der doc, den Sie zitiert haben.
Mit Firefox im chrome-Modus (browserId=*Chrom-statt *firefox), funktioniert dies wie erwartet. Es ist dokumentiert zu werden, arbeiten nur mit diesem browserId)
Zum Beispiel : attachFile("uploadField", Thread.currentThread().getContextClassLoader().getResource("files/Probe.pdf").toString());
Meine Lösung ist die Verwendung Selen-2 im RC-emulation-Modus. Dies ermöglicht Ihnen, halten Sie Ihre legacy-Selen-1-tests, aber Umstellung auf Selen-2-api, wenn Sie benötigt, um Aufgaben wie Datei-uploads.
Selen-2 ist derzeit in der Beta, scheint aber relativ stabil. Aber nicht alles, was Selen-1 tun kann, ist, unterstützt durch Selen-2 RC-emulation-Modus, so denken Sie zweimal, bevor Sie diesen Weg gehen.
Mehr dazu finden Sie hier:
http://seleniumhq.org/docs/09_webdriver.html#emulating-selenium-rc
Mit Selen /Rspec /Internet Explorer
Meine Lösung war die Schaffung eines AutoIt-Skript auf meinem windows-Rechner
Dann führen Sie diese als administrator auf der windows Maschine. Mit der rechten Maustaste auf die exe Datei und als admin ausführen.
Dann rspec hat eine Seite.klicken Sie auf "id der Schaltfläche "durchsuchen"". Wenn das Durchsuchen-Fenster öffnet sich auf dem windows-Rechner, AutoIt wählt zum automatischen füllen Sie das Textfeld, und es schließt sich. Hofft, dass dies jemand hilft, denn diese wurde driving me nuts.
Können Sie versuchen, dieses Skript in AutoIt. Im Grunde, erwartet es für die Datei-Auswahl-Fenster. Dann in Datei, Pfad und senden geben Sie schnell. Am Ende überprüft, ob es eine popup-Fehlermeldung, wenn jeder der es liest text und die Einstellung der exit-Code ist 1, wenn nicht legen Sie exit-code 0.
Das Skript stellt auch sicher, dass die Datei-Auswahl-Fenster wird geschlossen.
Kann das Skript umgewandelt werden, um ausführbare Datei (.exe) von Aut2Exe - es ist wichtig, markieren Sie die Konsole? checkbox, die Nach, dass die exe kann und ausgeführt von java
(Runtime.getRuntime().exec()).
Es ist auch eine Sache wichtig, zu ausführen, klicken Sie auf Datei hochladen-Schaltfläche in einem separaten thread.
Sonst Selen hängen, warten auf den Befehl klicken-finish, die nie passiert, weil Dateiauswahl-Fenster geöffnet und nicht geschlossen.
Dem Skript:
Seine viel einfacher mit $sel->type und $sel->Fokus. Unten ist ein guter Artikel.
http://bitsilearn.blogspot.com/
Ich habe gerade erfolgreich hochgeladene Dateien mit Selen zu nutzen *firefox als browser. Ich denke, Sie haben nicht die Aktualisierung der Dokumentation noch.
Ich bin mit dem Ruby-client, so war es so etwas wie dieses, um es zu arbeiten