我正在使用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类,因为如果焦点不在测试目标浏览器上,它将在其他浏览器上打开页面。
答案 0 :(得分:2)
尝试使用类似于下面的代码,它在我的结束时工作得很好......
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。
答案 1 :(得分:0)
您需要使用密钥绑定吗?
您只需导航到网址chrome://downloads/
...
编辑:Ofc,这不是跨浏览器兼容性的理想解决方案。但绝对是一个很好的解决方案。