我也遇到过这种情况 我有一个文件上传场景..这里我无法使用 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 中执行此操作吗 请告诉我
谢谢, 穆萨菲尔
最佳答案
确定在执行任何用户交互操作(鼠标或键盘事件)之前是否要求 IE 窗口具有焦点。此功能默认为 false,但可提供更准确的 native 事件交互。
设置如下所示的功能类型。它对我有用。
capability.setCapability("requireWindowFocus", false);
关于java - 机器人类不适用于 IE 中的文件上传场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805447/