Ver Mensaje Individual
  #2  
Antiguo 30-03-2023
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por alquimista Ver Mensaje
[...] 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 Ver Mensaje
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";
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita