我们正在进行自动化测试,遇到需要从浏览器下载文件的情况。 在下载按下按钮时,我们将进入系统弹出窗口进行下载,我们需要执行输入操作。
有些人可以帮助我们如何执行当前我们使用机器人API的输入或键盘操作,但它不适用于网格系统, 这是我的机器人代码,它可以被增强和使用,或者我们有任何替代方法来实现它
** * ** * ** 代码 * ** * ** * ** * ***
public void downloadReportFromMyExport(WebDriver driver, String downloadSufixId) throws AWTException,
InterruptedException
{
String downloadPrefixId = ConfigProperty.getConfig("downloadPrefixId").trim();
String[] suffix;
suffix = StringUtil.split(downloadSufixId, "TR_EXP_");
String suffixPart = suffix[0];
String completeId = downloadPrefixId.concat(suffixPart);
By id = By.id(completeId);
WebElement element = driver.findElement(id);
element.click();
Robot pressKey = new Robot();
pressKey.keyPress(KeyEvent.VK_ENTER);
pressKey.keyRelease(KeyEvent.VK_ENTER);
threadSleep("5");
pressKey.keyPress(KeyEvent.VK_ALT);
pressKey.keyPress(KeyEvent.VK_F4);
pressKey.keyRelease(KeyEvent.VK_F4);
pressKey.keyRelease(KeyEvent.VK_ALT);
logger.info("Downlaod Complete");
}
答案 0 :(得分:0)
在firefox浏览器中,
<强>解决方案-1 强>
您可以更改浏览器设置,以便在不询问的情况下将所有下载内容保存到该位置。
请参阅以下链接,了解如何在firefox中更改该设置。
https://support.mozilla.org/en-US/kb/startup-home-page-download-settings
<强>解决方案-2 强>
通过使用firefox配置文件设置,您可以实现此目的。
FirefoxProfile profile=new FirefoxProfile();
profile.setPreference("browser.download.folderList",2);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.download.dir","C:\\Users\\Downloads\\"); profile.setPreference("browser.helperApps.neverAsk.saveToDisk","text/csv");
DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability(FirefoxDriver.PROFILE, profile);
WebDriver driver=new FirefoxDriver(dc);
答案 1 :(得分:0)
更好地更改浏览器设置以保存在特定路径中
用于处理不同的浏览器,例如
在FF,我用过
在Firefox中默认情况下控件将处于“OPEN”选项,所以..
Robot robot=new Robot();
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
对于IE(保存alt + s,打开alt + O)这里我保存文件
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_S);
for chrome
默认情况下,当您单击下载按钮时,它将保存而不显示任何弹出窗口
我已成功希望它可以帮助你
-Ajay