Подтвердить что ты не робот

Как отправить "Ctrl + c" в Сикули?

Похоже, это должно быть довольно легко, но я не могу найти документацию о том, как это сделать:

Я просто хочу, чтобы Sikuli напечатал Ctrl + C, чтобы скопировать текст в буфер обмена.

type(KEY_CTRL+'c') не работает, а также type(KEY_CTRL,'c').

Любые предложения?

4b9b3361

Ответ 1

Попробуйте вместо этого использовать type("c",KEY_CTRL).

Я написал простой script, который вводит строку в блокнот, дважды щелкает ее, чтобы пометить ее, а затем 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)

Ответ 2

Ниже приведено описание более поздних версий

type('x', KeyModifier.CTRL)

Ответ 4

Ключевые объекты определены для почти всех клавиш-модификаторов и клавиш num pad. В любом случае, он должен выглядеть примерно так.

keyDown (Key.CTRL)
тип ('c')
KeyUp (Key.CTRL)

Ответ 5

type ('x', Key.CTRL) также работает.

Ответ 6

Как уже упоминалось, используйте следующее:

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

Один вопрос, который стоит упомянуть - не используйте символы верхнего регистра, т.е.:

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

Я не изучал исходный код Sikuli, но я думаю, что он неявно отправляет это как Shift+C, что приводит к другой команде полностью.

Ответ 7

Кроме того, убедитесь, что NUM_LOCK выключен. Если NUM_LOCK включен, он может сделать что-либо с KeyModifier.CTRL или KeyModifier.SHIFT неправильно.

Ответ 8

Вы можете попробовать следующий код:

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

Ответ 9

У меня было требование автоматизировать 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);

Ответ 10

Сценарий похож на то, что мне нужно нажать клавишу E на моей клавиатуре после завершения теста, как добавить это в script в SICULI IDE.