Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Captura de datos despues de simular clic con htmlunit

Saludos a todos,

Agradezco cualquier colaboracion que me puedan dar, desde que conocí la libreria htmlunit me gusto mucho y le he sacado mucho provecho automatizando tareas tediosas consultando muchos datos en paginas web y capturando los datos, pero hay una pagina que me a costado y no me ha dado resultado, le pegaré un trozo del codigo, el codigo no me genera error, simplemente no me hace la consulta a la pagina.

public class Operacion {
public String[] consultaRegistraduria(String cedula) throws IOException{
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_38);

final HtmlPage page1 = webClient.getPage("http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/Home.xhtml");

final HtmlForm form = page1.getFormByName("f1");

final HtmlSubmitInput button = form.getInputByValue("Consultar");

final HtmlTextInput textField = form.getInputByName("f1:nroDocto");

// final HtmlSelect combo = form.getSelectByName("f1:tipoDocto");
// combo.getOptionByValue("C");
// combo.setSelectedAttribute("C",true);

textField.setValueAttribute("78076125");

final HtmlPage page2;
page2 = form.getInputByValue("Consultar").click();
System.out.println(page2.asText());

return page2.asText();
}

lo que esta en comentario no es necesario ya que al cargar la pagina el combobox inicia con el valor "C"

Espero me ayuden o me den una pista de porque no hace la consulta

junio 28, 2015 | Unregistered Commenterresalpa84

Lo que veo es que según tu ese método devuelve un array de string, pero lo que realmente estas devolviendo es un string. Ese es el error.... y salvo eso, lo he probado y funciona bien... supongo que ya lo resolverías por ti mismo... pero bno por si acaso.

Un saludo!

junio 29, 2015 | Registered Commenterloderain

Disculpen, fue un descuido mio, En realidad lo que me interesa es lo que imprime o mas bien lo que deberia imprimir en la penultima linea "System.out.println(page2.asText());".

deberia imprimir el resultado de hacer la consulta en la pagina "http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/Home.xhtml" despues de llenar el texfield con el numero 78076125.

Ya lo he hecho con otras paginas web, no se que pasa, las otras paginas eran jsp, php, html, esta que no se deja es xhtml.

Algunas pista para resolver esto?

junio 30, 2015 | Unregistered Commenterresalpa84

Hola amigo, me he descargado el htmlUnit 2.17 y me ha funcionado sin problemas.....


run:
jun 30, 2015 7:55:12 PM com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError
GRAVE: runtimeError: message=[An invalid or illegal selector was specified (selector: '*,:x' error: Invalid selector: *:x).] sourceName=[http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/org.richfaces.resources/javax.faces.resource/org.richfaces/jquery.js] line=[1253] lineSource=[null] lineOffset=[0]
jun 30, 2015 7:55:16 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
ADVERTENCIA: CSS error: 'http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/javax.faces.resource/estilosbase.css.xhtml?ln=css' [23:5] Error in style rule. (Invalid token "-". Was expecting one of: <EOF>, <S>, <IDENT>, "}", ";", "*".)
jun 30, 2015 7:55:16 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
ADVERTENCIA: CSS warning: 'http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/javax.faces.resource/estilosbase.css.xhtml?ln=css' [23:5] Ignoring the following declarations in this rule.
jun 30, 2015 7:55:16 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
ADVERTENCIA: CSS error: 'http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/javax.faces.resource/estilosbase.css.xhtml?ln=css' [33:2] Error in style rule. (Invalid token "-". Was expecting one of: <EOF>, <S>, <IDENT>, "}", ";", "*".)
jun 30, 2015 7:55:16 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
ADVERTENCIA: CSS warning: 'http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/javax.faces.resource/estilosbase.css.xhtml?ln=css' [33:2] Ignoring the following declarations in this rule.
jun 30, 2015 7:55:16 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
ADVERTENCIA: CSS error: 'http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/javax.faces.resource/estilosbase.css.xhtml?ln=css' [227:2] Error in class selector. (Invalid token "\r\n". Was expecting: <IDENT>.)
jun 30, 2015 7:55:16 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
ADVERTENCIA: CSS warning: 'http://inscripcionelectoral.carvajal.com:8280/srvidc-webcon/javax.faces.resource/estilosbase.css.xhtml?ln=css' [227:2] Ignoring the whole rule.
Consulta tu lugar de inscripcion
Tipo de identificación
Cedula de ciudadanía
Numero de documento *
78076125
ConsultarLimpiar

REGISTRADURÍA NACIONAL DEL ESTADO CIVIL
Avenida Calle 26 # 51-50 - CAN (Bogotá - Colombia) Conmutador: (571) 220 2880
Horario de atención: Lunes a Viernes de 8:00 a.m. a 5:00 p.m.
Políticas de Privacidad y Condiciones de Uso | Preguntas frecuentes | Glosario | Contáctenos
BUILD SUCCESSFUL (total time: 10 seconds)

Eso si, le ha costado y despues he probado la pagina en el navegador... y a raiz de ahi me ha funcionado el htmlunit, no se si el haber entrado en la pagina por el navegador a tenido algo que ver. Prueba a entrar en el navegador y despues ejecutar el programa.. si falla insiste un poco. Ya nos contaras.

Un saludo

junio 30, 2015 | Registered Commenterloderain

amigo loderain, lo que te muestra es la pagina principal tal cual como si no hicieras la consulta del numero 78076125.

Eso es lo que me sale a mi, pero lo que deberia aparecer es algo asi:


Consulta tu lugar de inscripcion

Tipo de identificación
Numero de documento *

LUGAR ACTUAL DE VOTACION
Fecha ingreso 2001-07-01
Numero de documento: 78076125
Nombres: LARRI LUIS
Apellidos: PEREZ ALTAMIRANDA
Departamento: CORDOBA
Municipio: LORICA
Nombre puesto: I.E.DAVID SANCHEZ JULIAO
Direccion puesto: KR 28 #4-86 BR GAITA

es decir deberia salirme la consulta, la pregunta es ¿por que no sale?

junio 30, 2015 | Unregistered Commenterresalpa84

@resalpa84, el problema es por el tipo de pagina te faltan parametros, por lo que vi investigando la pagina que estas queriendo consultar, esta hecha en java utilizando jsf con RichFaces, y lo que el boton consultar hace es una llamada ajax lo que ellos llaman partial-responce.
sin entrar tanto detalle todos los parametros que necesita son estos:
f1:f1
f1:tipoDocto:C
f1:nroDocto:78076125
javax.faces.ViewState:7523610556068700295:5985243676562623508
javax.faces.source:f1:j_idt47
javax.faces.partial.event:click
javax.faces.partial.execute:f1:j_idt47 @component
javax.faces.partial.render:@component
org.richfaces.ajax.component:f1:j_idt47
f1:j_idt47:f1:j_idt47
rfExt:null
AJAX:EVENTS_COUNT:1
javax.faces.partial.ajax:true

la verdad no he usado la librería que dices, pero seria de probar enviar todos esos valores.
y jugar un poquito.
Nota:
Obtuve los parámetros con el debuguer que viene con chrome, en la pestaña network puedes ver estas llamadas y los parámetros que envía el cliente y los que recibe del servidor

julio 6, 2015 | Registered Commenterjhosep

PUEDEN AYUDARME CON ESTE ERROR QUE ME SALE, COMO LO SOLUCIONO?? YA QUE ME DESCONECTA CADA MIN DEL WIFI, GRACIAS

" Error: An invalid or illegal string was specified "

marzo 28, 2017 | Unregistered Commentermaggie