2013-02-07 15 views
5

Ho bisogno di testare l'azione di download. Ho già configurato i webdrivers remoti per i browser FF e Chrome per scaricare i file automaticamente senza alcun promt e popup-windows. Ma non riesco a trovare alcuna informazione utile - come consentire il download automatico dei file per IE9.Webdriver | IE9 | Installazione auto-download dei file

Quello che ho provato:

  • accertare eventuali modi per configurare driver stesso. Trovato nulla: nessuna funzionalità, nessuna opzione, nessun cmd args
  • trovare le impostazioni nella scheda Sicurezza. Ho già controllato e ho trovato che le impostazioni per consentire questo è stato rimosso per IE9.
  • uso di tali chiavi di registro, ma non aiuta (trovato here):

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones \ 2202 = 0x0

e questo:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ Caratteristica Control \ FEATURE_RESTRICT_FILEDOWNLOAD \ iexplore.exe = 0x00000000

Chi sa come risolverlo? È vero?

+3

C'è una soluzione di download di file multipiattaforma qui (dopo un post di blog che incoraggia a fermarsi prima e capire perché si stanno scaricando i file): http://ardesco.lazerycode.com/index.php/2012/07/ how-to-download-files-with-selenium-and-why-you-shouldnt/ – Ardesco

risposta

3

Purtroppo, ho anche colpito questo problema di recente. Ho paura di dire che non sono buone notizie.

IE8 e seguenti, questo era diverso, semplicemente perché era una nuova finestra con cui si poteva interagire.

IE9, ora è un builtin 'Frame Notifica Bar'

È possibile fare clic sul pulsante Salva con PInvoke ... vedere questo argomento:

https://stackoverflow.com/a/8532222/1173729

La risposta è per Watin, ma l'unica differenza è che Watin racchiude già la capacità di ottenere l'handle di una particolare finestra del browser. Questo può essere semplicemente commutato con il tuo metodo, il punto è in genere solo quello di ottenere la maniglia della finestra di IE, scendendo lungo i suoi elementi figli fino a quando non premi un pulsante 'Salva'. Questo ha però un grosso svantaggio, riportando il controllo su Selenium - non succede, Selenium si bloccherà.

Nota, questo è tutto in C#. Java ha a quanto pare altri modi, come la classe 'Robot':

http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html

io non li ho usati, ma si sarà in grado di utilizzare la classe di dirigerla a dove il pulsante Salva sarà.

Non ci saranno chiavi di registro o impostazioni per evitare questo problema - semplicemente non è possibile.

Ho preso la decisione che dal momento che FF & Chrome può essere impostato per il download automatico di un file, è possibile verificare la sua esistenza in seguito. Si verifica che il file possa essere scaricato e visualizzato sul disco rigido.

Quali sono le probabilità che non accada in IE9, se funziona correttamente in Chrome e Firefox? Sottile, ma possibile.

La linea di fondo è che si tratta di una finestra di dialogo del sistema operativo, qualcosa al di fuori del campo di applicazione del selenio.

È inoltre possibile combinarlo con AutoIT. La mia esperienza è che AutoIT può anche essere instabile.

+0

Grazie, ci proverò. Non ho mai usato il robot - sarà un'esperienza utile :) grazie! In realtà, ho bisogno di testare l'azione downalod per tutti i browser perché potrebbe non essere sempre in grado di fare clic sul pulsante di download o sull'elemento pulsante per l'utente per qualsiasi motivo. – Gadget