2015-03-26 8 views
5

Desidero automatizzare il processo di caricamento dei file che utilizza un controllo di caricamento file integrato nel bootstrap. Sto facendo lo stesso usando il webdriver. Qui di seguito è il mio codice, ma purtroppo non funziona:Come automatizzare il file di bootload Caricamento del caricamento tramite webdriver

element=driver.findElement(By.xpath("//[@id='upload']/fieldset/div[2]/input[1]")); 
element.sendKeys(pathToFile); 

Si sta dando un errore element not visible.

Ecco l'esempio del controllo FileUpload bootstrap che sto cercando di Automatizza Via JavaScript: su questo URL http://markusslima.github.io/bootstrap-filestyle/ prega di vedere sotto stile-

$(":file").filestyle({icon: false}); 
+0

Can u provare con JavascriptExecutor ??? e prova a impostare il valore sul percorso della classe .. o se non ti aiuta puoi anche impostareClipboardText ed eseguire ctrl v usando la classe Robot ... –

risposta

2

Ok. penso di averlo risolto.

WebElement fileInput = driver.findElement(By.id("document")); 

    JavascriptExecutor js = (JavascriptExecutor) driver; 
    WebElement element = driver.findElement(By.id("document")); 
    js.executeScript("arguments[0].setAttribute('style', 'left:30px')", 
      element); 

    fileInput.sendKeys(fileName); 

le bootstrap-filestyle.js nascondere un elemento di input quindi bisogna spostarlo nella zona visibile e quindi impostare nel modo standard.

così tanti problemi per una soluzione così semplice.

Ecco il mio codice HTML originale:

<span id="documentUpload"> 
    <input type="file" id="document" name="document" class="notMandatory" onkeypress="return noenter(event)" tabindex="-1" style="position: absolute; left: -9999px;"> 
    <div class="bootstrap-filestyle" style="display: inline;" tabindex="0"> 
     <input type="text" class="input-xlarge" disabled="" autocomplete="off"> 
     <label for="document" class="btn"><i class="icon-folder-open"></i> <span>Upload</span></label> 
    </div> 
</span>