¿Cómo enviar "CTRL + C" en Sikuli?
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?
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 sikuli
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:
- Ingrese el nombre de usuario y la contraseña
- Haga clic en el botón Iniciar sesión
- 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.