我正在进行需要在Internet Explorer中打开文档的自动化测试。该脚本完全正常,直到单击文档的链接,这将启动如下所示的讨厌的IE弹出窗口
由于我无法使用Webdriver专注于窗口,我尝试使用Robot.java发送键“Alt + O”,这可以手动正常工作,但在执行时会在运行时死锁。我的假设是与Selenium / Robot.java存在一些不兼容性,但由于死锁导致我无法生成任何日志,因此我难以接受。请不要建议使用AutoIT,因为我的安全分析师不会因为某些愚蠢的原因而让我使用它。非常感谢任何帮助。
工具:
MyRobot.java
public class MyRobot {
private static Robot robot;
public static void sendVirtualKeyCombination(int... keyEvents) {
try {
robot = new Robot();
robot.setAutoDelay(1000);
// Press key combination
for (int keyEvent : keyEvents) {
System.out.println("Pressing " + KeyEvent.getKeyText(keyEvent));
robot.keyPress(keyEvent);
}
} catch (AWTException e) {
e.printStackTrace();
} finally {
// Release all keys
for (int keyEvent : keyEvents) {
System.out.println("Releasing " + KeyEvent.getKeyText(keyEvent));
robot.keyRelease(keyEvent);
}
}
}
}
MyRobot调用
MyRobot.sendVirtualKeyCombination(KeyEvent.VK_Alt, KeyEvent.VK_O);
答案 0 :(得分:0)
按键后半秒钟尝试松开琴键。错误可能是由于按下和释放按键之间的延迟非常小。
// Press key combination
for (int keyEvent : keyEvents) {
System.out.println("Pressing " + KeyEvent.getKeyText(keyEvent));
robot.keyPress(keyEvent);
}
thread.sleep(500)
for (int keyEvent : keyEvents) {
System.out.println("Releasing " + KeyEvent.getKeyText(keyEvent));
robot.keyRelease(keyEvent);
}
答案 1 :(得分:0)
我在Firefox中遇到了同样的问题。尝试使用线程。 启动两个线程,第一个用于打开弹出按钮。事情冻结了。 现在,在第二个线程中放置一些等待并执行发送密钥。
希望这有效。