Ich verwende Selenium RC mit Junit-Rahmen. Ich versuche, eine Datei mit der Methode attachFile () hochzuladen.
%Vor%Kann mir bitte jemand sagen, wie man "fileLocator" definiert . Ich bekomme nicht die URL, die hier angegeben werden soll. Bitte geben Sie mir ein Beispiel, wenn möglich.
Ich habe dafür eine Lösung gefunden, benutze die selenium.focus Methode und die selen.keyPressNative / keyReleaseNative Methode.
Sie müssen den Fokus auf das Textfeld richten mit:
selenium.focus ("Textfeld-Locator");
Wenn Ihre Eingabedatei C: \ tools \ File.txt ist, müssen Sie die Buchstaben wie folgt eingeben:
selen.keyDownNative ("16"); // SHIFT ON
selen.keyPressNative ("67"); // c shift macht es C
selen.keyPressNative ("59"); //; Shift macht es: (Sie können nicht direkt Doppelpunkt)
selen.keyUpNative ("16"); // SHIFT OFF
selen.keyPressNative ("47"); // Schrägstrich
selen.keyPressNative ("84"); // t
selen.keyPressNative ("79"); // o
selen.keyPressNative ("79"); // o
selen.keyPressNative ("76"); // l
selen.keyPressNative ("83"); // s
selen.keyPressNative ("47"); // Schrägstrich
selen.keyDownNative ("16"); // SHIFT ON
selen.keyPressNative ("70"); // f shift macht es F
selen.keyUpNative ("16"); // SHIFT OFF
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.keyPressNativ ("10"); // Geben Sie
einselen.keyReleaseNative ("10"); // Geben Sie
einIch habe die Folge mit einem Enter-Charakter beendet. Manchmal funktioniert das nicht, daher müssen Sie möglicherweise auf die Schaltfläche klicken (wenn Sie den Element-Locator dafür kennen).
Das ist eine alte Frage, aber ich habe vor kurzem das Problem gelöst, dies zu tun
%Vor% Der Browserist nur eine Variable, die den Browser enthält, in dem das Selenium-Skript läuft, und der Code ist offensichtlich in Java.
Für IE ist uploadFile.exe ein automatisches It-Skript, das so aussieht.
%Vor%Es nimmt im Wesentlichen den Titel des Fensters, maximiert es, gibt die hochzuladende Datei ein, klickt auf den Auswahlknopf und geht zurück zu Selenium, ich habe es in IE 8 getestet, aber ich verstehe nicht warum IE, das von Auto unterstützt wird, ist es _IE-Bibliothek nicht in der Lage, damit umzugehen.
Ich habe eine Menge Roboterscripte und Firefox-Hacks gesehen, bei denen Sie JavaScript aktivieren, um zusätzliche Dinge zu tun. Beide erfordern keine Änderung des Browsers.
Ich entschuldige mich für den Mangel an Kommentaren, dieser Code ist noch in Arbeit.
"fileLocator" ist keine URL, sondern ein Locator, wie oben im Javadoc der Selenium-Klasse angegeben. Es ist der Locator der Eingabe, die zum Auswählen einer Datei verwendet wird.
Der "fieldLocator" ist eine URL, die auf die Datei zeigt, die Sie im Eingabefeld des Formulars angeben möchten, wie in dem Dokument angegeben, das Sie angeben.
Bei Firefox im Chrome-Modus (browserId = * chrome statt * firefox) funktioniert das wie erwartet. Es ist dokumentiert, nur mit dieser browserId)
zu arbeitenZum Beispiel: attachFile ("uploadField", Thread.currentThread (). getContextClassLoader (). getResource ("files / sample.pdf"). toString ());
Meine Lösung ist, Selenium-2 im RC-Emulationsmodus zu verwenden. Auf diese Weise können Sie Ihre alten Selenium-1-Tests beibehalten, aber zu Selenium-2-api wechseln, wenn Sie Aufgaben wie Datei-Uploads ausführen müssen.
Selen-2 befindet sich derzeit in der Beta-Phase, scheint aber relativ stabil zu sein. Aber nicht alles, was Selenium-1 tun kann, wird vom Selenium-2 RC Emulationsmodus unterstützt, also denke zweimal darüber nach, bevor du so gehst.
Mehr dazu hier: Ссылка
Selenium / Rspec / Internet Explorer verwenden Meine Lösung war, ein AutoIt-Skript auf meinem Windows-Rechner
zu erstellen %Vor%Führen Sie dies als Administrator auf dem Windows-Computer aus. Klicken Sie mit der rechten Maustaste auf die EXE-Datei und führen Sie sie als Administrator aus.
Dann macht rspec eine page.click "ID Ihrer Browse-Taste". Wenn das Fenster Durchsuchen auf dem Windows-Computer geöffnet wird, füllt AutoIt das Textfeld automatisch und schließt es. Hoffe, das hilft jemandem, denn das hat mich verrückt gemacht.
Sie können dieses Skript in AutoIt versuchen. Im Grunde wartet es auf das Dateiauswahlfenster. Dann den Dateipfad eingeben und schnell eingeben. Am Ende prüft, ob es eine Popup-Fehlermeldung gab, falls überhaupt, liest es Text und setzt Exitcode auf 1, wenn der nicht gesetzte Exit-Code auf 0 gesetzt ist. Das Skript stellt außerdem sicher, dass das Dateiauswahlfenster geschlossen ist.
Das Skript kann von Aut2Exe in eine ausführbare Datei (.exe) konvertiert werden - es ist wichtig, die Konsole zu markieren. checkbox, Danach kann exe ausgeführt und von java (Runtime.getRuntime().exec()).
Es ist auch eine Sache wichtig, klicken Sie auf Datei-Upload-Button in separaten Thread.
%Vor%Sonst bleibt selen hängen und wartet auf das Beenden des Befehls click, was nie passiert, weil das Fenster zur Dateiauswahl geöffnet und nicht geschlossen wurde.
Das Skript:
%Vor%Es ist viel einfacher mit $ sel- & gt; type und $ sel- & gt; Fokus. Unten ist ein guter Artikel.
Tags und Links javascript selenium-rc