このコードは、ロボットフレームワークの自動化に使用されます。 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:コンテキストメニューには、自分の入力で送信キーを使用しているアイテムがあります。
は、あなたはそれがMac上で予想される動作ではありませんか? – nhouser9
ええ、私は確信しています。手動で試してみましたが、コンテキストメニューからアイテムを選択することができました – user7096987
MACの問題についてはわかりませんが、キーを押してすべての時間を使っていますか?私は通常、ShiftキーまたはCtrlキーを使用しているときにのみ、keyPressを使用して解放します。 keyReleaseなしで試してみてください! – Waman