Cela semble être assez facile, mais je ne trouve pas de documentation sur la façon de procéder:
Je veux juste que Sikuli tape Ctrl+C copier du texte dans le presse-papier.
type(KEY_CTRL+'c')
ne fonctionne pas et type(KEY_CTRL,'c')
.
Aucune suggestion?
Essayez d'utiliser type("c",KEY_CTRL)
à la place.
J'ai écrit un script simple qui tape une ligne dans le bloc-notes, double-clique dessus pour le marquer, puis ctrl + x ctrl + v dans le document. 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)
Ce qui suit fonctionne dans les versions 0.9 et plus récentes de sikuli
type('x', KeyModifier.CTRL)
Les objets clés sont définis pour à peu près toutes les touches de modification et les touches du pavé numérique. Quoi qu'il en soit, cela devrait ressembler à quelque chose comme ça
keyDown (Key.CTRL)
type ('c')
keyUp (Key.CTRL)
L'utilisation de type () et les noms de clé possibles sont documentés ici:
type ('x', Key.CTRL) fonctionne également.
Comme d'autres l'ont mentionné, utilisez ce qui suit:
type('c', Key.CTRL) # Copy command
Un point qui mérite d’être mentionné - faites pas utilisez des majuscules, c’est-à-dire:
type('C', Key.CTRL) # Does not copy, avoid this
Je n'ai pas examiné le code source de Sikuli, mais la meilleure hypothèse est qu'il l'envoie implicitement sous la forme Shift+C
, ce qui entraîne une commande totalement différente.
Assurez-vous également que NUM_LOCK est désactivé. Si NUM_LOCK est activé, tout ce qui se passe avec KeyModifier.CTRL ou KeyModifier.SHIFT peut être incorrect.
Vous pouvez essayer le code suivant:
keyDown(Key.CTRL)
type("c")
keyUp(Key.CTRL)
J'avais besoin d'automatiser un contenu flash. Le code suivant a fonctionné pour moi . Ce sont les étapes suivantes que j’ai pu effectuer dans le cadre de l’automatisation:
Le défi auquel j'ai dû faire face était de me concentrer sur le nom d'utilisateur et le mot de passe, qui n'avaient aucun espace réservé. Par conséquent, la mise au point était difficile. J'ai donc utilisé les touches CTRL pour le faire.
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);