【问题标题】:How to handle IE download popup using selenium webdriver如何使用 selenium webdriver 处理 IE 下载弹出窗口
【发布时间】:2021-12-28 05:04:10
【问题描述】:

我需要使用 selenium webdriver 从 IE11 中的 Web 应用程序下载 PDF 文件的解决方案。请找到我正在尝试处理的以下弹出窗口。

以下是我尝试处理 IE 弹出窗口的方法,但不幸的是没有任何帮助。

  1. 我尝试使用 AutoIT 使用下面的 AutoIT 脚本来处理这种情况。

    睡眠(5000)

    本地 $hIE = WinGetHandle("[Class:IEFrame]")

    本地 $hCtrl = ControlGetHandle($hIE, "", "[ClassNN:DirectUIHWND1]")

    如果 WinExists($hIE,"") 那么

    WinActivate($hIE,"")

    ControlSend($hIE ,"",$hCtrl,"{F6}")

    睡眠(500)

    ControlSend($hIE ,"",$hCtrl,"{TAB}")

    睡眠(500)

    ControlSend($hIE ,"",$hCtrl,"{enter}")

    如果结束

    睡眠(25000)

虽然上述 AutoIT 脚本有效,但在执行 AutoIT 脚本后,webdriver 脚本挂起。使用上述 AutoIT 脚本处理弹出窗口后,即使是常见的 system.out.println 语句也不会执行。

  1. 我尝试使用 Robot 类处理此弹出窗口,但运气不好,这似乎也不起作用。

  2. 我尝试通过以下路径进行一些注册表设置来禁用此 IE 弹出窗口, HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\AttachmentExecute\

    完成某些注册表设置后,此弹出窗口已成功禁用 .xlsx 或 .RDP 文件,而不是 .PDF 文件。但在我的情况下,我有一个测试用例,我需要下载一个 .pdf 文件并继续执行进一步的 webdriver 脚本。

各位,我们将不胜感激任何其他解决方法的建议。

谢谢你, Sudheendran P L

【问题讨论】:

标签: selenium-webdriver popup internet-explorer-11 autoit


【解决方案1】:

我遇到了同样的问题。在这种情况下,单击按钮在 IE 中无法正常工作。我切换了单击按钮以使用sendKeys() 将其聚焦,然后按Enter。

试试这个:

Robot robot;
try {
        // pressing download button
        button.sendKeys("""");
        robot = new Robot();
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);

        // handling download
        webDriver.wait(2000);
        robot.keyPress(KeyEvent.VK_ALT);
        robot.keyPress(KeyEvent.VK_S);
        webDriver.wait(200);
        robot.keyRelease(KeyEvent.VK_S);
        robot.keyRelease(KeyEvent.VK_ALT);
    } catch (Exception e) {
        e.printStackTrace();
    }

您可以使用Thread.sleep() 代替driver.wait(),应该也可以。

【讨论】:

  • 问题是机器人在运行无头作业时无法与 Jenkins 一起工作。
猜你喜欢
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 2016-07-21
  • 2012-07-16
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
相关资源
最近更新 更多