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

action.sendKeys(body, Keys.CONTROL + "j") dosen't open the download page

我正在使用 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 class,因为如果焦点不在测试目标浏览器上,它会在其他浏览器上打开页面。

需要使用按键绑定吗? 您可以直接导航至 URL chrome://downloads/ ...

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

的一个很好的解决方法

尝试使用下面的代码,它在我这边工作得很好......

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 中起作用。