我们正在进行自动化测试,在这种情况下,我需要从浏览器下载文件。在下载中,当点击下载按钮时,我们将进入系统pop进行下载,在那里我们需要执行enter操作。
是否有人能帮助我们执行目前我们使用的机器人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");
}发布于 2013-11-21 13:43:32
在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);发布于 2013-11-26 07:38:02
是的,我也遇到过同样的问题
最好将浏览器设置更改为保存在特定路径中。
用于处理不同的浏览器,例如,
在FF里,我用过
默认情况下,在firefox中,控件将处于“打开”选项中。
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);用于铬
默认情况下,当您单击dowload按钮时,它将保存而不显示任何弹出窗口。
我成功了,希望它能帮到你
-Ajay
https://stackoverflow.com/questions/20122341
复制相似问题