Selenium Webdriver在使用Java';s机器人类

Selenium Webdriver在使用Java';s机器人类,java,selenium,webdriver,awtrobot,Java,Selenium,Webdriver,Awtrobot,我正在进行一个自动测试,需要在Internet Explorer中打开一个文档。该脚本工作得非常好,直到单击指向文档的链接后,才会启动讨厌的IE弹出窗口,如下图所示 因为我无法使用Webdriver关注窗口,所以我尝试使用Robot.java发送键“Alt+O”,这可以手动正常工作,但在执行时会在运行时死锁。我的假设是与Selenium/Robot.java存在一些不兼容的地方,但由于死锁,我无法生成任何日志,因此我在这个问题上遇到了难题。请不要建议使用AutoIT,因为我的安全分析师出于愚蠢

我正在进行一个自动测试,需要在Internet Explorer中打开一个文档。该脚本工作得非常好,直到单击指向文档的链接后,才会启动讨厌的IE弹出窗口,如下图所示

因为我无法使用Webdriver关注窗口,所以我尝试使用Robot.java发送键“Alt+O”,这可以手动正常工作,但在执行时会在运行时死锁。我的假设是与Selenium/Robot.java存在一些不兼容的地方,但由于死锁,我无法生成任何日志,因此我在这个问题上遇到了难题。请不要建议使用AutoIT,因为我的安全分析师出于愚蠢的原因不会让我使用它。非常感谢您的帮助

工具:

  • selenium-server-standalone-2.41.0
  • IEDriverServer(32位版本)
  • Internet Explorer版本=9
  • 脚本是用Java编写的
  • 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);
    

    试着在按键半秒钟后释放按键。该错误可能是由于按键和释放按键之间的延迟很小造成的

    // 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);
        }
    

    我在Firefox中也遇到了同样的问题。尝试使用线程。 启动两个线程,第一个用于打开弹出按钮。现在一切都冻结了。 现在,在第二个线程中放置一些等待并执行发送键


    希望这能奏效

    运气不好,还是一样的行为你试过延迟而不是睡觉吗?例如=机器人延迟(50)@赛琳娜·鲁奇就像我要接受赛琳娜·鲁奇的建议一样!只是开玩笑。。。我明天会试试,让你知道进展如何。谢谢