我想模拟按下 Enter 键。我尝试使用机器人类,但它似乎不起作用:
robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
try{Thread.sleep(50);}catch(InterruptedException e){}
robot.keyRelease(KeyEvent.VK_ENTER);
在我的主代码中,我有
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
System.out.println("ENTER KEY PRESSED");
// DO SOMETHING;
}
}
因此,如果 keyPress 已注册,那么控制台应该打印出“ENTER KEY PRESSED”,但它没有这样做。
感谢您的帮助!
此外,如果您知道一种无需机器人类即可模拟关键事件的方法,请在下面发帖:)。
最佳答案
问题不仅仅在于您如何使用 Robot
。
KeyListener
仅当其附加的组件可聚焦且具有焦点时才会响应。
首先,不要使用KeyListener
,使用key bindings相反,这将有助于解决焦点问题。
其次,确保您尝试与实际键盘焦点交互的窗口(并且焦点不在将使用 Enter 键的控件上)
关于java - 在 Java 中模拟关键输入以进行 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429288/