KeyPress Enter for Selenium

时间:2013-11-21 13:30:36

标签: selenium selenium-webdriver testng

我们正在进行自动化测试,遇到需要从浏览器下载文件的情况。 在下载按下按钮时,我们将进入系统弹出窗口进行下载,我们需要执行输入操作。

有些人可以帮助我们如何执行当前我们使用机器人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");
    }

2 个答案:

答案 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