Hola a todos,
Cita:
Empezado por alquimista
[...] el código que he usado es:
Código Delphi [-]procedure TForm2.EdgeBrowser1NavigationCompleted(Sender: TCustomEdgeBrowser;
IsSuccess: Boolean; WebErrorStatus: TOleEnum);
begin
EdgeBrowser1.ExecuteScript('document.getElementById("usuario").value = "23232323A";');
EdgeBrowser1.ExecuteScript('document.getElementById("password").value = "password";');
EdgeBrowser1.ExecuteScript('document.getElementById("submit").click();');
end;
Pero no obtengo nada. Ni me da error.
|
Lo que sucede es que los "inputs" no tienen un atributo "id", por lo que "getElementById" retorará "null" y por eso no te funciona como esperas.
Respecto de "getElementsByName", este método retorna un array de elementos: sí que podría retornarte los elementos en cuestión, porque, sí tienen atributo "name", pero, el código JS a ejecutar debería quedar tal que así:
Código:
document.getElementsByName("usuario")[0].value = '23232323A';
Cita:
Empezado por alquimista
Eureka!!!!!!! Lo encontré.
|
En efecto, "querySelector" es, por decirlo de alguna manera, más potente que los métodos mencionados, porque,
permite seleccionar elementos mediante "selectores", no sólo mediante sus atributos "id" o "name".
De hecho, el código que ejecutas podría utilizar ahora el atributo "name", evitando así seleccionar otros posibles "inputs" que existiesen en la página del tipo que indicas, es decir, podrías usar algo como esto:
Código:
document.querySelector("input[name=usuario]").value="tunif22222222A";