开发者

How to send "Ctrl + c" in Sikuli?

开发者 https://www.devze.com 2023-03-12 10:46 出处:网络
This feels like it should be pretty easy but I can\'t find documentation on how to do this: I just want Sikuli to type Ctrl+C to copy text to the clipboard.

This feels like it should be pretty easy but I can't find documentation on how to do this:

I just want Sikuli to type Ctrl+C to copy text to the clipboard.

type(KEY_CTRL+'c') doesn't work and neither does type(KEY_CTRL,'c').

开发者_开发技巧

Any suggestions?


Try using type("c",KEY_CTRL) instead.

I wrote a simple script which types a line in notepad, double clicks it to mark it and then ctrl+x ctrl+v it into the document again. Works great.

openApp("notepad.exe")

find("textfield.png" )
type("Some text")
doubleClick("theText.png")

type("x", KEY_CTRL)

click("theTextField.png" )
type("v",KEY_CTRL)


The following works in 0.9 and newer versions of sikuli

type('x', KeyModifier.CTRL)


Key objects are defined for pretty much all the modifier keys and num pad keys. Anyways, it should look something like this

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


The usage of type() and the possible key names are documented here:

  • http://doc.sikuli.org/region.html#Region.type
  • http://doc.sikuli.org/keys.html#key-constants


As others have mentioned, use the following:

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

One point worth mentioning - do not use upper-case characters, i.e.:

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

I haven't looked into the Sikuli source code, but my best guess is that it implicitly sends this as Shift+C, which results in a different command entirely.


type('x', Key.CTRL) also works.


Also, make sure that NUM_LOCK is off. If NUM_LOCK is on, it can make anything with KeyModifier.CTRL or KeyModifier.SHIFT misbehave.


You can try next code:

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


I had a requirement to automate a flash content. The following code worked for me. These were the following steps I ahd to perform as a part of the automation:

  1. Enter Username and Password
  2. Click on Login Button
  3. Click on the button which will navigate to the application

The challenge I faced was to focus on the Username and password which had no placeholders . Hence the focusing was difficult. So I used the CTRL keys to do this .

    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);


The scenario is like i need to press say key E in my keyboard after finishing the test how to add this in the script in Sikuli IDE.

0

精彩评论

暂无评论...
验证码 换一张
取 消