Comment envoyer "Ctrl + c" en Sikuli?
cela semble comme si cela devrait être assez facile, mais je ne peux pas trouver de documentation sur la façon de le faire:
je veux juste que Sikuli tape Ctrl + C pour copier du texte dans le bloc-notes.
type(KEY_CTRL+'c')
ne fonctionne pas et ne fonctionne pas non plus type(KEY_CTRL,'c')
.
des suggestions?
10 réponses
essayez d'utiliser type("c",KEY_CTRL)
à la place.
j'ai écrit un script simple qui tape une ligne dans notepad, double clique pour la marquer et puis ctrl+x Ctrl+v it dans le document à nouveau. Fonctionne très bien.
openApp("notepad.exe")
find("textfield.png" )
type("Some text")
doubleClick("theText.png")
type("x", KEY_CTRL)
click("theTextField.png" )
type("v",KEY_CTRL)
les objets-clés sont définis pour presque toutes les clés modificatrices et les clés num pad. De toute façon, ça devrait ressembler à quelque chose comme ça
keyDown(Key.CTRL)
type ('c')
keyUp (KeyUp.Ctrl)
l'usage de type() et les noms de clés possibles sont documentés ici:
comme d'autres l'ont mentionné, utilisez ce qui suit:
type('c', Key.CTRL) # Copy command
un point à mentionner - do not utiliser des caractères majuscules, i.e.:
type('C', Key.CTRL) # Does not copy, avoid this
Je n'ai pas regardé dans le code source de Sikuli, mais ma meilleure supposition est qu'il envoie implicitement cela comme Shift+C
, qui résulte en une commande entièrement différente.
aussi, assurez-vous que NUM_LOCK est éteint. Si NUM_LOCK est activé, il peut faire n'importe quoi avec KeyModifier.Ctrl ou KeyModifier.MAJ se conduisent mal.
vous pouvez essayer le code suivant:
keyDown(Key.CTRL)
type("c")
keyUp(Key.CTRL)
j'avais une exigence d'automatiser un contenu flash. Le code suivant a fonctionné pour moi. Il s'agissait des étapes suivantes que je devais effectuer dans le cadre de l'automatisation:
- entrer Nom d'Utilisateur et mot de passe
- cliquez sur le bouton de connexion
- cliquez sur le bouton qui vous mènera à l'application
le défi que j'ai eu à relever était de me concentrer sur le nom D'Utilisateur et le mot de passe qui n'avait pas réservé. Par conséquent, la mise au point était difficile. Donc j'ai utilisé les clés CTRL pour faire ça .
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);
le scénario est comme je dois appuyer sur la touche E de say dans mon clavier après avoir terminé le test comment ajouter ceci dans le script en Sikuli IDE.