23

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

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

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

有什么建议么?

4

10 回答 10

26

尝试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)
于 2011-06-14T21:08:46.113 回答
19

以下适用于 0.9 和更新版本的

type('x', KeyModifier.CTRL)
于 2012-03-02T00:30:42.800 回答
6

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

keyDown(Key.CTRL)
type('c')
keyUp(Key.CTRL)

于 2013-05-31T09:48:31.983 回答
4

此处记录了 type() 的用法和可能的键名:

于 2012-12-27T12:08:07.553 回答
1

type('x', Key.CTRL) 也可以。

于 2013-07-01T13:44:30.550 回答
1

正如其他人所提到的,请使用以下内容:

type('c', Key.CTRL) # Copy command

值得一提的一点 - 不要使用大写字符,即:

type('C', Key.CTRL) # Does not copy, avoid this

我没有查看 Sikuli 源代码,但我最好的猜测是它隐式地将 this 发送为Shift+C,这会导致完全不同的命令。

于 2017-02-01T14:51:29.867 回答
0

此外,请确保 NUM_LOCK 已关闭。如果 NUM_LOCK 处于打开状态,它可以使任何使用 KeyModifier.CTRL 或 KeyModifier.SHIFT 的行为异常。

于 2013-11-07T19:26:19.353 回答
0

您可以尝试下一个代码:

keyDown(Key.CTRL)
type("c")
keyUp(Key.CTRL)
于 2014-03-16T16:08:08.093 回答
0

我需要自动化 Flash 内容。以下代码对我有用。这些是我作为自动化的一部分执行的以下步骤:

  1. 输入用户名和密码
  2. 点击登录按钮
  3. 单击将导航到应用程序的按钮

我面临的挑战是关注没有占位符的用户名和密码。因此对焦很困难。所以我使用 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);
于 2017-06-09T10:35:58.090 回答
-1

这种情况就像我需要在完成测试后按键盘上的说键 E 如何在 Sikuli IDE 的脚本中添加它。

于 2016-09-23T11:43:09.377 回答