Selenium RC wie man Datei mit attachFile () hochladen

8

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.

    
Saara 10.11.2009, 13:13
quelle

8 Antworten

1

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

ein

selen.keyReleaseNative ("10"); // Geben Sie

ein

Ich 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).

    
Saara 30.11.2009, 09:48
quelle
4

Das ist eine alte Frage, aber ich habe vor kurzem das Problem gelöst, dies zu tun

%Vor% Der Browser

ist 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.

    
Gus 18.06.2010 13:18
quelle
1

"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 arbeiten

Zum Beispiel: attachFile ("uploadField", Thread.currentThread (). getContextClassLoader (). getResource ("files / sample.pdf"). toString ());

    
joe-mojo 30.11.2009 15:11
quelle
1

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: Ссылка

    
Sebastien B. 25.01.2011 20:22
quelle
1

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.

    
Bill Sloane 18.05.2011 18:46
quelle
1

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()).

ausgeführt werden

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%     
moonio 28.10.2011 13:58
quelle
0

Es ist viel einfacher mit $ sel- & gt; type und $ sel- & gt; Fokus. Unten ist ein guter Artikel.

Ссылка

    
shadeslayer 21.03.2010 09:12
quelle
0

Ich habe Dateien erfolgreich hochgeladen, wobei Selenium verwendet wurde, um * firefox als Browser zu verwenden. Ich denke, sie haben die Dokumentation noch nicht aktualisiert.

Ich verwende den Ruby-Client, damit es so funktioniert,

%Vor%     
Huliax 17.02.2012 20:06
quelle

Tags und Links