机器人类在IE中不适用于文件上载方案

时间:2015-08-04 09:24:32

标签: java file-upload selenium-webdriver awtrobot

我遇到过这种情况 我有一个文件上传场景..我不能使用sendKeys方法发送文件的绝对路径,因为没有输入元素,我只有一个'浏览'按钮从本地文件夹中选择文件

所以要处理这个问题,我使用selenium webdriver点击“浏览器”按钮后使用机器人类和下面的逻辑:

StringSelection sc = new StringSelection(file);                 >>file is the one to upload
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sc, null);
try {
        Robot robot= new Robot();
        robot.delay(3000);
         robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
         robot.delay(2000);
        robot.keyPress(KeyEvent.VK_CONTROL);    
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_CONTROL);

        robot.delay(3000);
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);

   }

这在chrome和firefox中非常有效......但在Internet Explorer 11中却没有 在IE中,模型对话框打开,但它没有粘贴假定要上载的文件的路径 是否有任何人在IE中遇到此问题 我们是否必须在IE中做任何额外的事情 请让我知道

谢谢, Musaffir

1 个答案:

答案 0 :(得分:0)

确定在执行任何用户交互操作(鼠标或键盘事件)之前是否要求IE窗口具有焦点。默认情况下,此功能为false,但提供更准确的本机事件交互。

设置Capabilty类型,如下所示。这对我有用。

capabilities.setCapability(“requireWindowFocus”,false);