2014-07-12 11 views
6

Sto eseguendo alcuni test di caricamento dei file. Ho trovato che il mio codice di prova si blocca a element.send_keys(file) se sto usando PhantomJS, tuttavia lo stesso codice non si blocca se sto usando Firefox.Selenium Webdriver - PhantomJS si blocca su send_keys() sull'elemento di input del file

Esistono soluzioni alternative per rendere correttamente i file di caricamento di PhantomJS? Attualmente sto usando Windows 7, Python 3.4.1, selenio 2.42.1, PhantomJS 1.9.7.

+0

Potresti dire se l'input aveva un attributo muliple – Jack

+0

L'input ha attributo "multiplo". –

+0

Ho lo stesso problema con PhantomJS quando si esegue send.keys (file). Non avevo avuto fortuna di andare avanti, quello che potrei dire è che il selenio non sta guidando la pagina html5 così bene. Non possiamo impostare direttamente il valore dell'ingresso utilizzando send_keys. Abbiamo bisogno di aprire la finestra di dialogo del browser di caricamento, nel tuo caso se ne hai uno, e compilare il percorso file utilizzando l'API di automazione esterna come AutoIT ecc. Perché il webdriver non ha alcun indizio sulla finestra di dialogo in quanto è sotto il livello di Doin OS. So che questo è un problema, ma ho provato ad eseguire javascript, il generatore di azioni non ha funzionato. – Jack

risposta

0
browser = webdriver.PhantomJS() 
browser.set_window_size(1200,800) 

Senza impostare le dimensioni della finestra, il browser rimane in dimensioni mobili causando errori. Prova anche un'attesa implicita.

0

Utilizzare PhantomJS.uploadFile(). Tuttavia, non ha trovato API di selenio python.

var webPage = require('webpage'); 
var page = webPage.create(); 
page.uploadFile('input[name=image]', '/path/to/some/photo.jpg'); 
Problemi correlati