我正在构建一个有两个按钮的小型Java应用程序
其中一个按钮应将chrome页面更改为上一页,
第二个应该转到下一页
我正在使用Java Robot
类来激发执行此操作的快捷方式。
// next page (alt + right arrow)
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_ALT);
代码有效,但是当点击chrome中的地址栏时,
然后触发其中一个按钮,然后将奇怪的符号写入地址栏,而不是跳到下一个\上一页。标志是♠ ♦
。
我也尝试改变命令之间的顺序,但没有帮助。
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_RIGHT);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_RIGHT);
答案 0 :(得分:0)
似乎java.util.Robot
总是使用numpad [arrow]键存在错误,只需手动尝试alt + numpad4或numpad6。我找不到原始的bug,这里有一些链接:
作为解决方法,您尝试从地址栏中移除焦点,以下内容对我有用:
robot.keyPress(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_ALT);
robot.delay(1); // seems to be required for the event to be registered
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_LEFT);
robot.keyRelease(KeyEvent.VK_LEFT);
robot.keyRelease(KeyEvent.VK_ALT);