2013-11-21 56 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

上述代碼在網格設置上運行自動化時不工作 –

相關問題