Asignar value a campo edit java32

Hola, he capturado una pantalla de “guardar como” en una aplicacion de Java, he seleccionado para la captura donde se introduce el nombre del archivo pero no le puedo cambiar el value ( estoy con c# ). El programa se queda procesando hasta que lo cierro
image

public void clickAnalisisCualitativoProyectOpenText() {
      RPAJava32Edit ACProyectOpenText;
      ACProyectOpenText = (RPAJava32Edit)cartes.component("$ACProyectOpenText");
      cartes.reset(ACProyectOpenText.api());
      ACProyectOpenText.Value = "asdf";
      ACProyectOpenButton.focus();
      ACProyectOpenButton.click();
 }

Esta es la forma correcta? he probado tambien co dochild pero no consigo nada claro

Creo que sé qué pasa. Sospecho que es una ventana modal que duerme el hilo principal del programa java hasta que se cierre la ventana. Lo que bloquea a Cartes dentro de ese hilo.

El truco va estar en la acción que abre esta ventana. ¿Qué haces antes de abrir esta ventana? ¿Se abre después de un click del ratón sobre un botón? Si la respuesta es afirmativa, prueba a usar el foco y la tecla espacio para pulsar el botón en lugar del click.

Si no te funciona, dime cómo abres la ventana. ¿Se ven los objetos con Windows?

Si, es el tipico boton de abrir una archivo, en la clase RPAJava32Component no encuentro la funcion de pulsar la tecla espacio, con la captura de win32 solo se ve la ventana y el boton de cerrar la ventana, no se si es a lo que te refieres

Vale, es porque pertenece a la clase Frame de java. Los métodos que debes usar son de Windows no de Java, porque tu hilo de Java está dormido con Cartes/Java dentro. Así que debes usar métodos de Windows.

La clase Frame de java corresponde directamente con el objeto de Windows que usa la máquina virtual de java. Los métodos no están en la ayuda de la izquierda de RPA Suite, están en la ayuda del F1 y vas hasta Java / Frame.

Win_[method]
Si necesita llamar a alguno de los métodos o propiedades del objeto Windows asociado al componente use esta sintaxis.

.Win_X
.Win_Y
.Win_press(69, 1

El código en Cartes Script sería algo así…
$boton.focus;
$boton.doroot(“win_press”, 32);

Si usas C#…
boton.focus();
parameters.items[0] = “32”;
((RPAJava32Frame)boton.root()).doWindows(“press”, parameters);

Dinos si te funciona, por favor.

1 Like

Me ha funcionado, con pequeñas diferencias (en C#)

cartes.reset(ACOpenButton.api());
ACOpenButton.focus();
RPAParameters parameters = new RPAParameters();
parameters.item[0] = “32”;
((RPAJava32Frame)ACOpenButton.getComponentRoot()).doWindows(“press”, parameters);

Gracias por la ayuda!

1 Like