问题(按下按钮)
使用IE11 / Edge下载文件时,响应对话框(通知栏)将显示在底部,您需要按"保存"。
此对话框。

这次,我研究了如何使用Selenium WebDriver对此进行测试。实现语言将是Java。
按下按钮的代码
似乎该对话框无法在浏览器设置中隐藏,因此我研究了如何按"保存"。
我通过参考通过Selenium在IE9中测试下载文件的代码创建了它,但是由于IE版本不同,我不得不对其进行一些修改。
sample.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import java.awt.AWTException; import java.awt.Robot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.ie.InternetExplorerDriver; //??? // ダウンロード処理を行うエレメント(ボタンなど)を検索 WebElement downloadElement = driver.findElement(By.id("download")); try { Robot robot = new Robot(); // 対象エレメントにフォーカスを移動 downloadElement.sendKeys(""""); // Enterキーを押下 robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); // ダウンロードの通知バー(ダウンロードマネージャ)が出てくるのを待つ Thread.sleep(2000); // Alt+N を押下して、ダウンロードの通知バー(ダウンロードマネージャ)にフォーカスを移動 robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_N); robot.keyRelease(KeyEvent.VK_N); robot.keyRelease(KeyEvent.VK_ALT); // Enterキーを押下してダウンロード開始 robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); // ダウンロード終了を待つ Thread.sleep(2000); // Alt+N を押下して、ダウンロードの通知バー(ダウンロードマネージャ)にフォーカスを移動 robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_N); robot.keyRelease(KeyEvent.VK_N); robot.keyRelease(KeyEvent.VK_ALT); // タブキーを3回押下して、通知バーの "X" ボタンに遷移する robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); robot.keyPress(KeyEvent.VK_TAB); robot.keyRelease(KeyEvent.VK_TAB); // Enterキーを押下して、通知バー(ダウンロードマネージャ)を閉じる robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); } catch (AWTException e) { e.printStackTrace(); } |
解释和注意事项
正如我在
注释中所写,此代码使用Robot来执行下载所需的击键。具体地
- 按Alt N(关注下载对话框)→按Enter(按保存按钮)→再按Alt N(下载后关注确认对话框)→移至选项卡上的X(关闭)按钮→按Enter(对话框关闭)
我们正在执行名为
的操作。
因此,如果在执行测试期间更改活动窗口,则将在该窗口中操作键,并且测试将失败 font>(例如,正常)。下载文件夹以检查它是否可以执行,该密钥将在此处操作)。在此处测试代码时,请注意不要切换活动窗口。
另外,如果将来浏览器的规格发生变化并且按键操作发生变化,则需要对其进行更正。
最后,我将列出这次确认的浏览器版本。
IE11版本信息:
边缘版本: