Ich habe ein AutoIt-Skript, das ich aus meinem Java-Programm herausrufe, das Selenium verwendet, um Daten über eine Webanwendung zu laden. Das Skript lädt die Datei mit dem Wert aus der Datei, aber nur dann, wenn das Java-Programm im Vordergrund ausgeführt wird. Höchstwahrscheinlich wird dieses Programm im Hintergrund ausgeführt.Kann ich ein Autoit-Skript im Hintergrund ausführen, um eine Datei hochzuladen
Wie kann ich es einrichten, damit das Programm im Hintergrund läuft?
Java:
Thread.sleep(2000); // wait for page load
Runtime.getRuntime().exec("C:\\Users\\Janet\\Documents\\uploadFile.exe " + uploadFile);
AutoIt:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=C:\Users\Janet\Documents\uploadFile.exe
#AutoIt3Wrapper_Outfile_x64=C:\Users\Janet\Documents\uploadFile_x64a.Exe
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
ControlFocus("File Upload","","Edit1"); Name of the file upload window (Windows Popup Name: Open)
ControlSetText("File Upload","","Edit1",$CmdLineRaw); File name
Send("{ENTER}")
Können Sie nicht einfach SendKeys mit Selen verwenden, um die Datei hochzuladen? Ich gehe davon aus, dass dies eine grundlegende Datei-Upload-Schaltfläche ist und nicht irgendeine JavaScript-Bibliothek-Implementierung. –
Ich glaube nicht, dass Sie eine Fokussierung auf ein Hintergrundprogramm setzen können. – IkeRoyle
Nein, ich kann nicht. Auf dem Startbildschirm gibt es kein Textfeld zum Eingeben eines Dateinamens. Sie gehen in ein Cropper-Werkzeug und klicken darauf, um den Datei-Explorer-Dialog zu öffnen. Wenn es nur die Sendkeys in Selen verwendet hätte, hätte ich das getan. – Janet