2013-11-21 58 views
0

我们正在进行自动化测试,并且遇到了需要从浏览器下载文件的情况。 在下载时,当下载按钮被击中时,我们将进入系统弹出窗口进行下载,我们需要执行输入操作。KeyPress Enter for Selenium

有人可以帮助我们如何执行输入或键盘操作,目前我们正在使用机器人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

在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); 
0

是啊,我已经遇到了同样的问题

更好更改浏览器设置,在特定的路径

处理不同的浏览器,如保存,

在FF

, 我” ve已使用

在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); 

,当过你点击下载中心按钮,它会保存而不显示任何弹出窗口

,我已经成功希望它可以帮助你

-Ajay

+0

上述代码在网格设置上运行自动化时不工作 –

相关问题