如何在Sikuli中发送“Ctrl + c”?

时间:2011-06-13 23:39:17

标签: keyboard sikuli

这感觉应该很容易,但我找不到如何执行此操作的文档:

我只想让Sikuli键入 Ctrl + C 将文本复制到剪贴板。

type(KEY_CTRL+'c')不起作用,type(KEY_CTRL,'c')也不起作用。

有什么建议吗?

10 个答案:

答案 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及更新版本的

type('x', KeyModifier.CTRL)

答案 2 :(得分:5)

几乎所有修饰键和数字键都定义了键对象。无论如何,它应该看起来像这样

  

keyDown(Key.CTRL)
  类型('c')
  使用keyUp(Key.CTRL)

答案 3 :(得分:4)

答案 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内容。以下代码对我有用。 这些是我作为自动化的一部分执行的以下步骤:

  1. 输入用户名和密码
  2. 点击登录按钮
  3. 点击将导航到应用程序的按钮
  4. 我面临的挑战是关注没有占位符的用户名和密码。因此聚焦很困难。所以我使用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的脚本中添加它。