Java 与Selenium一起使用时,使用Robot类按下ALT+S键不起作用

Java 与Selenium一起使用时,使用Robot类按下ALT+S键不起作用,java,selenium,awtrobot,Java,Selenium,Awtrobot,我正在使用SeleniumWebDriver自动化一个场景。当我在IE中使用selenium java脚本单击按钮时,它会下载一个excel文件显示在图像弹出窗口中。 但是,我需要单击该栏中的Save选项,以便在默认位置下载它。 由于selenium不支持单击文件下载浏览器弹出窗口,因此我尝试使用robot类功能 我使用的代码是: driver.findElement(By.xpath("//*[@id='btnGenerateExtract']/span/span")).click();

我正在使用SeleniumWebDriver自动化一个场景。当我在IE中使用selenium java脚本单击按钮时,它会下载一个excel文件显示在图像弹出窗口中。 但是,我需要单击该栏中的Save选项,以便在默认位置下载它。 由于selenium不支持单击文件下载浏览器弹出窗口,因此我尝试使用robot类功能

我使用的代码是:

driver.findElement(By.xpath("//*[@id='btnGenerateExtract']/span/span")).click();
    //some wait of 4 seconds
    clickOnSave();
单击保存的代码:

{
            Robot robot=new Robot();
            robot.setAutoDelay(250);
            robot.keyPress(KeyEvent.VK_ALT);
            Thread.sleep(1000);
            robot.keyPress(KeyEvent.VK_S);
            robot.keyRelease(KeyEvent.VK_ALT);
            robot.keyRelease(KeyEvent.VK_S);
}
但是,这不起作用,因为它无法单击“保存”选项。
请建议

您可以停止浏览器请求提示保存或打开,或者手动指定默认保存位置

链接:


这个问题通过脚本中的一个小改动得到了解决。 而不是

driver.findElementBy.xpath/*[@id='btnGenerateExtract']/span/span.click

使用JavascriptExecutor作为

executor.executeScriptarguments[0]。单击;,driver.findElementBy.xpath/*[@id='btnGenerateExtract']/span/span


其余的键盘或鼠标事件可以使用Robot类执行。

尽管这可能是一个临时修复,但我不能期望所有实用程序用户都在regedit中进行这样的更改。我想有更好的方法来处理这种情况。请建议。