Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2016, 18:06
AGmzT
 
Fecha de Ingreso: febrero-2014
Mensajes: 16
Antigüedad: 10 años, 2 meses
Puntos: 0
formulario web aceptar descarga

Buenas gente! Tanto tiempo! Mi trabajo me ha tenido alejado del foro por un tiempo, y ya que no soy programador ni trabajo de eso, java se ha convertido en mi hobby (espero no ofender a nadie)

Pero este aqui que a veces trabajo y placer se juntan, por eso consulto.

Estoy haciendo un programita que me permita aliviar un poco mi trabajo o parte de el, en mi país ya es común que las empresas proveedoras entreguen las facturas con código para verlas online, la consulta se hace a través de la pagina de la empresa en cuestión, pero se redireccionan a un servicio publico estatal (creado con tal fin, que todos podemos consultarlo, personas y empresa) y luego devuelve una copia del documento en formato pdf y que se visualiza en el navegador, el cual se puede descargar.

Bueno cree un código que carga la pagina de la empresa (no importa cual todas tienen el mismo código base) llena el formulario, lo envía y espera por la pagina con el resultado, pide bajar el doc y aquí mi problema: aparece la caja de aceptar descarga de siempre cuando queremos descargar algo, y bueno no logro detectar esta caja ni accesar el botón de aceptar que hay en ella. Estoy usando selemiun, les dejo el condigo que estoy usando, simplificado en una sola clase para les sea mas rapido leerlo.

// genero el webdriver y le doy la dirección de pagina web
WebDriver driver = new FirefoxDriver();
String web = "http://www.disco.com.uy/customcode/consulta_fact.html";
driver.get(web);
String handle = driver.getWindowHandle();

// detecto los elementos del formulario
WebElement serie, numero, total, hash6, consultar, download;
serie = driver.findElement(By.name("Serie"));
numero = driver.findElement(By.name("Numero"));
total = driver.findElement(By.name("Total"));
hash6 = driver.findElement(By.name("Hash6"));
consultar = driver.findElement(By.name("Consultar"));

// relleno cada elemento
serie.sendKeys("W");
numero.sendKeys("0967493");
total.sendKeys("381.06");
hash6.sendKeys("BjHkek");

// lo envio
consultar.click();

// creo un array y lo igualo al set de las paginas abiertas
ArrayList<String> ventanas = new ArrayList();
Set handles = driver.getWindowHandles();
System.out.println(handles.size());
for(String handle1 : driver.getWindowHandles()){
System.out.println(handle1);
ventanas.add(handle1);
}

//me aseguro de estar el ventana que presenta el resultado
int i = ventanas.size();
driver.switchTo().window(ventanas.get(i-1));

// encuentro el botón de download y le doy click
download = driver.findElement(By.id("download"));
download.click();


Desde aquí no se que hacer para tomar control del dialogo de bajar que aparece y poder bajar el doc.

Alguien puede darme alguna idea, gracia