Keyboard “如何发送”;Ctrl+;";在西库里?

Keyboard “如何发送”;Ctrl+;";在西库里?,keyboard,sikuli,Keyboard,Sikuli,这感觉应该很简单,但我找不到关于如何做到这一点的文档: 我只希望Sikuli键入Ctrl+C将文本复制到剪贴板 type(按CTRL+c键)不起作用,键入(按CTRL+c键)也不起作用 有什么建议吗?试着用键入(“c”,按CTRL) 我编写了一个简单的脚本,在记事本中键入一行,双击它来标记它,然后按ctrl+x ctrl+v将它再次输入文档。效果很好 openApp(“notepad.exe”) 查找(“textfield.png”) 键入(“某些文本”) 双击(“theText.png”) 键

这感觉应该很简单,但我找不到关于如何做到这一点的文档:

我只希望Sikuli键入Ctrl+C将文本复制到剪贴板

type(按CTRL+c键)
不起作用,键入(按CTRL+c键)也不起作用

有什么建议吗?

试着用
键入(“c”,按CTRL)

我编写了一个简单的脚本,在记事本中键入一行,双击它来标记它,然后按ctrl+x ctrl+v将它再次输入文档。效果很好

openApp(“notepad.exe”)
查找(“textfield.png”)
键入(“某些文本”)
双击(“theText.png”)
键入(“x”,按CTRL键)
单击(“theTextField.png”)
键入(“v”,按CTRL键)

以下内容适用于0.9及更高版本的

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


几乎所有的修改器键和数字键盘键都定义了键对象。无论如何,它应该是这样的

向下键(Key.CTRL)
类型('c')
keyUp(Key.CTRL)


键入('x',Key.CTRL)也可以工作。

此外,请确保NUM\u LOCK已关闭。如果NUM_LOCK处于启用状态,它可能会使KeyModifier.CTRL或KeyModifier.SHIFT的任何内容出现错误。

您可以尝试下一个代码:

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

这个场景就像我需要在完成测试后按键盘上的say键E,如何在Sikuli IDE的脚本中添加这个

如其他人所述,使用以下方法:

type('c',Key.CTRL)#复制命令
值得一提的一点-不要使用大写字符,即:

type('C',Key.CTRL)#不复制,请避免此操作

我还没有研究Sikuli的源代码,但我最好的猜测是它隐式地将其作为
Shift+C
发送,这导致了一个完全不同的命令。

我需要自动化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);
    

    就是这样,(按CTRL键,'c')不起作用,但('c',按CTRL键)起作用,想想看!自版本X1.0-rc3起。请注意,这是区分大小写的“x”和“c”起作用,但“x”和“c”不起作用!这可以工作,但只需要3行就足够了。
    type('x',KeyModifier.CTRL)
    当你想让程序句柄的一部分按下修改器,另一部分以其快乐的方式运行时,如果不知道按钮是否按下currentlyNum Lock对我来说没有任何区别。你在特定平台上看到过这个问题吗?@JonathanBenn,我使用的是Windows 7 Home Premium、Java 7(更新65)和Sikuli 1.0.1。
        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);