。action.keyDown(Keys.CONTROL).sendKeys( “J”)使用keyUp(Keys.CONTROL).build()执行();如果测试浏览器不在操作系统的焦点下,则不起作用

时间:2016-05-28 17:54:59

标签: java selenium selenium-webdriver selenium-chromedriver

我正在使用Java和Selenium为Chrome编写测试。我需要一次打开下载页面,以便used下面的代码:

action.keyDown(Keys.CONTROL).sendKeys("j").keyUp(Keys.CONTROL).build().perform();

只要操作系统重点在测试浏览器上,它就能正常工作,我的意思是如果我运行测试然后再点击其他地方(例如,如果我在测试运行时在IDE中开始编码)此代码不会工作。

如何将焦点带回测试浏览器或此代码工作的任何其他方式,并在测试浏览器上打开下载窗口?

有趣的是,它适用于: action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).build().perform();,即使它没有集中注意力!

1 个答案:

答案 0 :(得分:0)

如果您的目标是清除下载内容,而不仅仅是启动另一个具有新状态的ChromeDriver,您可以尝试以下操作:

    driver.get("chrome://downloads/");
    ((JavascriptExecutor) driver).executeScript("chrome.send('clearAll');");