【问题标题】:Sikuli keyword to press Windows key + uparrow keys togetherSikuli键盘同时按下Windows键+向上箭头键
【发布时间】:2018-09-16 04:23:46
【问题描述】:
【问题讨论】:
标签:
robotframework
sikuli
【解决方案1】:
我不认为在当前的 robotsframework-sikulilibrary 发行版中,您可以将多个参数传递给“按特殊键”关键字。您可以做的是修改该关键字以按一个键或按一个键修饰符和另一个键,例如:在您的情况下为 WIN+UP。
这里是你需要的库(robotframework-SikuliLibrary/src/java/com/github/rainmanwy/robotframework/sikulilib/keywords/ScreenKeywords.java)中的修改:
@RobotKeyword( "Presses a special keyboard key."
+ "\n\n For a list of possible Keys view docs for org.sikuli.script.Key ."
+ "\n\n Example Usage:"
+ "\n | Double Click | textFieldWithDefaultText.png | "
+ "\n | Press Special Key | DELETE | ")
@ArgumentNames({"*keyConstant"})
public void pressSpecialKey(String... specialCharName) throws ScreenOperationException{
try{
if (specialCharName.length == 1){
Object key = Key.class.getField(specialCharName[0]).get(null);
screen.type(key.toString());
} else if ( specialCharName.length == 2){
Object keyModifier = Key.class.getField(specialCharName[0]).get(null);
Object key = Key.class.getField(specialCharName[1]).get(null);
screen.type(key.toString(),keyModifier.toString());
}
}
catch(ReflectiveOperationException e){
throw new ScreenOperationException("No " +specialCharName.toString() + " in class org.sikuli.script.Key ");
}
}
您还可以在这里做更多的事情。但这将满足您的目的,因为我将它与 WIN+UP 和 SHIFT+DELETE 一起使用来测试代码。
如何使用 maven 构建自己的 SikuliLibrary jar,请查看 here。 (我不认为我可以通过修改“按特殊键”关键字来分发我的库版本)
【解决方案2】:
你可以试试这个方法:
Screen screen = new Screen();
screen.type(Key.WIN, Key.UP);
【解决方案3】:
是这样的:
type(Key.UP, KeyModifier.WIN)