Sikuli关键字一起按Windows键+向上键

时间:2018-04-06 07:36:37

标签: robotframework sikuli

我是使用sikuli库的机器人框架的新手。我想使用Windows键+ uparrow最大化应用程序窗口。你能告诉我一个关键词可以用来按Windows键+ uparrow。查看sikuli图书馆文档http://rainmanwy.github.io/robotframework-SikuliLibrary/doc/SikuliLibrary.html#Press%20Special%20Key我知道有按下特殊键关键字来按键盘上的单个键。但问题是如何处理两个键。谢谢。

3 个答案:

答案 0 :(得分:0)

您可以尝试这种方法:

Screen screen = new Screen();
screen.type(Key.WIN, Key.UP);

答案 1 :(得分:0)

我不认为使用当前的robotframework-sikulilibrary发行版,您可以将多个参数传递给“Press Special Key”关键字。您可以做的是修改该关键字以按一个键或按键修改键和另一个键,例如: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 :(得分:0)

是这样的

type(Key.UP, KeyModifier.WIN)