Java 与Selenium一起使用时,使用Robot类按下ALT+S键不起作用
我正在使用SeleniumWebDriver自动化一个场景。当我在IE中使用selenium java脚本单击按钮时,它会下载一个excel文件显示在图像弹出窗口中。 但是,我需要单击该栏中的Save选项,以便在默认位置下载它。 由于selenium不支持单击文件下载浏览器弹出窗口,因此我尝试使用robot类功能 我使用的代码是: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();
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中进行这样的更改。我想有更好的方法来处理这种情况。请建议。