这感觉应该很容易,但我找不到如何执行此操作的文档:
我只想让Sikuli键入 Ctrl + C 将文本复制到剪贴板。
type(KEY_CTRL+'c')
不起作用,type(KEY_CTRL,'c')
也不起作用。
有什么建议吗?
答案 0 :(得分:23)
请尝试使用type("c",KEY_CTRL)
。
我写了一个简单的脚本,它在记事本中键入一行,双击它来标记它然后再按ctrl + x ctrl + v进入文档。效果很好。
openApp("notepad.exe")
find("textfield.png" )
type("Some text")
doubleClick("theText.png")
type("x", KEY_CTRL)
click("theTextField.png" )
type("v",KEY_CTRL)
答案 1 :(得分:17)
以下适用于0.9及更新版本的sikuli
type('x', KeyModifier.CTRL)
答案 2 :(得分:5)
几乎所有修饰键和数字键都定义了键对象。无论如何,它应该看起来像这样
keyDown(Key.CTRL)
类型('c')
使用keyUp(Key.CTRL)
答案 3 :(得分:4)
这里记录了type()的用法和可能的键名:
答案 4 :(得分:1)
type('x',Key.CTRL)也有效。
答案 5 :(得分:1)
正如其他人所提到的,请使用以下内容:
type('c', Key.CTRL) # Copy command
值得一提的是 - 不使用大写字符,即:
type('C', Key.CTRL) # Does not copy, avoid this
我没有查看过Sikuli源代码,但我最好的猜测是它隐式地将其发送为Shift+C
,这导致完全不同的命令。
答案 6 :(得分:0)
另外,请确保NUM_LOCK已关闭。如果启用了NUM_LOCK,则可以使用KeyModifier.CTRL或KeyModifier.SHIFT进行任何操作。
答案 7 :(得分:0)
您可以尝试下一个代码:
keyDown(Key.CTRL)
type("c")
keyUp(Key.CTRL)
答案 8 :(得分:0)
我要求自动化Flash内容。以下代码对我有用。 这些是我作为自动化的一部分执行的以下步骤:
我面临的挑战是关注没有占位符的用户名和密码。因此聚焦很困难。所以我使用CTRL键来做到这一点。
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);
答案 9 :(得分:-1)
这个场景就像我需要在完成测试之后按下键盘上的键E,如何在Sikuli IDE的脚本中添加它。