Presionar teclas en IE

Estoy usando este código para ingresar en la barra de direcciones una página web y luego presionar enter para navegar a la misma:

    var component = (RPAWin32Component)Cartes.Obj.component("$barraDirecciones");
    component.value = "https://www.google.com.ar";
    component.TypeKey("enter", "", "");

Al correr el proceso encuentra la barra de direcciones, cambia el valor, pero cuando presiona enter abre una pestaña nueva y carga la página del búscador por defecto de dicho navegador (en este caso es bing) en vez de navegar a google.

image

Probé agregando component.focus(); y tampoco funcionó.

Este comportamiento no sucede si utilizo el método Press:

    component.Press(13, 1);

La navegación se realiza correctamente y se ingresa a google en la misma pestaña.

A qué se puede deber? Cómo lo soluciono?

Hola @wmaidana, el foco, te falta situar el foco del teclado. Vete a saber a quien le envías el Enter. Está claro que a la caja de texto no le llega. Todos los métodos que comienzan por Type necesitan que manejes el foco del teclado.

“press” envía el mensaje directamente al componente. No usa el foco de teclado y por eso los componentes tienden a ignorar este mensaje. Es decir, “press” te funcionó porque debe ser de los pocos componentes que aceptan el mensaje.

Pero tal como comenté, hice component.focus(); y aún así continúa fallando. Qué más puedo probar?

Dónde has puesto component.focus() es importante, decir que lo has usado no implica que lo hicieras bien.

Lee este post y pruébalo.
Close Notepad Saving it