Pregunta

Esto parece que debería ser bastante fácil, pero no puedo encontrar documentación sobre cómo hacer esto:

Solo quiero que Sikuli escriba Control+C Para copiar texto al portapapeles.

type(KEY_CTRL+'c') no funciona y tampoco lo hace type(KEY_CTRL,'c').

¿Alguna sugerencia?

¿Fue útil?

Solución

Intenta usar type("c",KEY_CTRL) en cambio.

Escribí un script simple que escribe una línea en el bloc de notas, hace doble clic para marcarlo y luego ctrl+x ctrl+vla nuevamente en el documento. Funciona genial.

openApp("notepad.exe")

find("textfield.png" )
type("Some text")
doubleClick("theText.png")

type("x", KEY_CTRL)

click("theTextField.png" )
type("v",KEY_CTRL)

Otros consejos

Lo siguiente funciona en 0.9 y versiones más nuevas de

type('x', KeyModifier.CTRL)

Los objetos clave se definen para casi todas las teclas del modificador y las teclas NUM PAD. De todos modos, debería verse algo así

keydown (key.ctrl)
Tipo ('C')
KeyUp (key.ctrl)

El uso del tipo () y los posibles nombres de clave se documentan aquí:

El tipo ('x', key.ctrl) también funciona.

Como otros han mencionado, use lo siguiente:

type('c', Key.CTRL) # Copy command

Un punto que vale la pena mencionar: hacer no Use caracteres en el caso superior, es decir:

type('C', Key.CTRL) # Does not copy, avoid this

No he investigado el código fuente de Sikuli, pero mi mejor suposición es que implícitamente envía esto como Shift+C, que da como resultado un comando completamente diferente.

Además, asegúrese de que num_lock esté apagado. Si num_lock está activado, puede hacer cualquier cosa con kymodifier.ctrl o kymodifier.shift mal comportamiento.

Puede probar el siguiente código:

keyDown(Key.CTRL)
type("c")
keyUp(Key.CTRL)

Tenía el requisito de automatizar un contenido flash. El siguiente código funcionó para mí. Estos fueron los siguientes pasos que he realizado como parte de la automatización:

  1. Ingrese el nombre de usuario y la contraseña
  2. Haga clic en el botón Iniciar sesión
  3. Haga clic en el botón que navegará a la aplicación

El desafío que enfrenté fue centrarse en el nombre de usuario y la contraseña que no tenían marcadores de posición. Por lo tanto, el enfoque fue difícil. Así que usé las teclas CTRL para hacer esto.

    Pattern appLogo = new Pattern("C:\\images\\appLogo.png");
    StringSelection userNameText = new StringSelection("username");              
   Toolkit.getDefaultToolkit().getSystemClipboard().setContents(userNameText, null);//Copy the text into the memory   
        Screen s = new Screen(); 
            s.find(appLogo);
            s.click(appLogo);
            s.type(Key.TAB);//I had to enter tab twice to focus on user name textbox
            s.type(Key.TAB);
            s.type("V",KeyModifier.CTRL);

            StringSelection password = new StringSelection("password");               
            Toolkit.getDefaultToolkit().getSystemClipboard().setContents(password, null);
            s.type(Key.TAB);//I had to enter tab twice to focus on user name textbox
            s.type("V",KeyModifier.CTRL);

            Pattern loginButton =  new Pattern("C:\\images\\Login.png");
            s.find(loginButton);
            s.doubleClick(loginButton);

El escenario es como si necesito presionar Say Key E en mi teclado después de terminar la prueba de cómo agregar esto en el script en Sikuli IDE.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top