2016-11-11 9 views
3

このコードは、ロボットフレームワークの自動化に使用されます。 Finderウィンドウを右クリックした後、 "e"、 "d"などのキーを送信し、コンテキストメニューからアイテムを選択したいとします。これは、Javaコードです:窓(ほとんどすべてのバージョン)で鍵を送信するMacで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); 
    } 

、私は、キーを送ることが完全にできていますが、マックシエラ/エルキャピタンには、エラーをスローしませんが、それは実際にそのファイルを選択し、 。私はコンテキストメニューの項目を実際に選択するのではなく、ファイルが選択されているこれらの入力をすべて使用して、 "e"、 "d"、 "o"

PS:コンテキストメニューには、自分の入力で送信キーを使用しているアイテムがあります。

+0

は、あなたはそれがMac上で予想される動作ではありませんか? – nhouser9

+0

ええ、私は確信しています。手動で試してみましたが、コンテキストメニューからアイテムを選択することができました – user7096987

+0

MACの問題についてはわかりませんが、キーを押してすべての時間を使っていますか?私は通常、ShiftキーまたはCtrlキーを使用しているときにのみ、keyPressを使用して解放します。 keyReleaseなしで試してみてください! – Waman

答えて

0

これは私が使用するものです。

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)); 
      } 
     } 
    } 
+0

[link](http://stackoverflow.com/questions/40812032/numpad-5-for-right-click-on-mac-is-not-working-using-robotframework)あなたはいくつかの入力をして、私に教えてください。 – user7096987

関連する問題