action.sendKeys(body,Keys.CONTROL +“j”)不要打开下载页面

我正在使用Java和Selenium为Chrome编写测试。 我需要在某一点打开下载页面,所以我使用了:

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

但它不会打开页面。 然后我在它之前添加了这一行,因为我虽然它可能有效,但它没有:

 WebElement body = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//body[@id='body']"))); action.sendKeys(body, Keys.CONTROL + "j").build().perform(); 

奇怪的是

 action.sendKeys(Keys.CONTROL + "a").build().perform(); 

作品!!

注意:我不想使用Robot类,因为如果焦点不在测试目标浏览器上,它将在其他浏览器上打开页面。

尝试使用像下面的代码,它在我的最终完美工作…

 Actions builder = new Actions(driver); builder.keyDown(Keys.CONTROL).sendKeys("j").keyUp(Keys.CONTROL).build().perform(); 

我建议不要使用chrome:// downloads,因为这在IE和FF中不起作用,但CTRL + j适用于所有chrome,IE和FF。

你需要使用密钥绑定吗? 您只需导航到URL chrome://downloads/

编辑:Ofc,这不是跨浏览器兼容性的理想解决方案。 但绝对是一个很好的解决方案。