Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发送密钥Java代码在Mac上不工作_Java_Macos_Automation_Robotframework - Fatal编程技术网

发送密钥Java代码在Mac上不工作

发送密钥Java代码在Mac上不工作,java,macos,automation,robotframework,Java,Macos,Automation,Robotframework,此代码用于robotframework中的自动化目的。在finder窗口上单击鼠标右键后,我想发送“e”、“d”等键,并从上下文菜单中选择一项。这是Java代码: public void sendKeys(String text) throws Exception { int len = text.length(); char curr; for (int index=0; index<len; index++) { curr = text.to

此代码用于robotframework中的自动化目的。在finder窗口上单击鼠标右键后,我想发送“e”、“d”等键,并从上下文菜单中选择一项。这是Java代码:

    public void sendKeys(String text) throws Exception {
    int len = text.length();
    char curr;
    for (int index=0; index<len; index++) {
      curr = text.toUpperCase().charAt(index);
      assertTrue(
        String.format("'%c' is not an alphanumeric character", curr),
        (curr>=KeyEvent.VK_A && curr<=KeyEvent.VK_Z) || (curr>=KeyEvent.VK_0 && curr<=KeyEvent.VK_9)
      );
      robot.keyPress(curr);
      robot.keyRelease(curr);
    }
    System.out.println("Send Keys "+text);
  }  
public void sendKeys(字符串文本)引发异常{
int len=text.length();
半货币;
对于(int index=0;index=KeyEvent.VK_A&&curr=KeyEvent.VK_0&&curr我使用的是:

public static void enterString(String value)
    {   
        String Keyvalue=value.toUpperCase();
        //System.out.println(Keyvalue);
        for (int i=0;i<Keyvalue.length();i++)
        {
            //System.out.println(Keyvalue.charAt(i));
            if(Keyvalue.charAt(i) == ':')
            {
                System.out.println("its a colon");
                RoboKey.keyPress(KeyEvent.VK_SHIFT);
                RoboKey.keyPress(KeyEvent.VK_SEMICOLON);
                RoboKey.keyRelease(KeyEvent.VK_SEMICOLON);
                RoboKey.keyRelease(KeyEvent.VK_SHIFT);

            }
            else if (Keyvalue.charAt(i) == '.')
            {
                RoboKey.keyPress(KeyEvent.VK_PERIOD);
            }
            else if (Keyvalue.charAt(i) == '_')
            {
               RoboKey.keyPress(KeyEvent.VK_SHIFT);
               RoboKey.keyPress(KeyEvent.VK_MINUS);
               RoboKey.keyRelease(KeyEvent.VK_MINUS);
               RoboKey.keyRelease(KeyEvent.VK_SHIFT);
            }
            else
            {
               RoboKey.keyPress((int)Keyvalue.charAt(i));
            }
        }
    }
公共静态无效输入字符串(字符串值)
{   
字符串Keyvalue=value.toUpperCase();
//System.out.println(Keyvalue);

对于(int i=0;i你确定这不是Mac电脑上的预期行为吗?是的,我确定。我尝试过手动操作,并且能够从上下文菜单中选择该项不确定Mac问题,但你是否一直使用按键按下并释放?我通常只在使用SHIFT或CTRL键时使用按键按下并释放。尝试不使用按键释放!我有我的版本也可以输入字符串,如果你愿意,可以尝试一下。但我从未在上面测试过MAC@Waman-我在没有密钥释放的情况下尝试了该代码,但它不起作用。您可以共享enterString代码,我将在Mac上尝试吗?[link]()如果您有一些输入,请检查此代码,然后让我知道。