私はロボットを使っていくつかの統合テストを書いています。私はロボットがメニューを開き、メニューからオプションの1つを選択する必要があります。 Enterキーは無視されているようです。メニューが開き、正しいメニュー項目が選択されていますが、Enterキーを押したときに実行されるようなアクションはとられていません。私が手動で適切なキーを押すと、予想通りのことが行われます。 Java以外のアプリケーションでロボットを実行すると、他のアプリケーションがenterイベントに正しく応答します。だから私は正しく入力イベントを送信していることを確認して、Javaメニューはそれに応答する必要があります。何かがうまくいかない。ロボットが生成するVK_EnterイベントをJavaが無視する
私はまた、入力イベントをスペースイベントで置き換えようとしました(メニューも応答する必要があります)、応答もありませんでした。
私は最新のsun JDKを使ってredhat Linuxで動作しています。私は、私はまったく同じ問題に遭遇した人を記述するこの記事を見つけたので、それは私のコードで明らかに問題ではないかなり確信しているが、それは何の解決策がありません:http://www.velocityreviews.com/forums/t666100-robot-and-awt-on-linux.html
private void requestTest(String testName){
if(testName==currentTest)
return;
//overwrite config file with new data
currentTest=testName;
overwriteFile(configFile, getCurrentConfigFile());
//close current graph
pressKeyCombo(KeyEvent.VK_CONTROL, KeyEvent.VK_F4);
//open File menu
pressKeyCombo(KeyEvent.VK_ALT, KeyEvent.VK_F);
//select the 'load defaults' option
pressKey(KeyEvent.VK_DOWN);
pressKey(KeyEvent.VK_DOWN);
pressKey(KeyEvent.VK_DOWN);
pressKey(KeyEvent.VK_SPACE);
}
たぶん、そのプラットフォームの問題、多分そのコードの問題。問題を示すSSCCE(http://sscce.org)を投稿してください。 – camickr
これはSSCCEではありません。それがどのようにコンパイルできるのかを私に説明してください。 – camickr
これは私が持っているすべてのものですが、コードの小さな部分で問題を再現できませんでした。 – drew