当前位置: 首页 > 知识库问答 >
问题:

如何使用selenium webdriver处理IE下载弹出窗口

施自明
2023-03-14

我需要一个解决方案,使用SeleniumWebDriver从IE11中的web应用程序下载PDF文件。请找到下面我正在尝试处理的弹出窗口。

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

>

  • 我试图使用下面的AutoIT脚本使用AutoIT来处理这个场景。

    睡眠(5000)

    本地$hIE=wingthandle(“[Class:IEFrame]”)

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

    如果WinExists($hIE,")然后

    WinActivate($hIE,“”)

    ControlSend($hIE,“,$hCtrl,“{F6}”)

    睡眠(500)

    ControlSend($hIE,“,$hCtrl,“{TAB}”)

    睡眠(500)

    控制发送($hIE,",$hCtrl,"{回车}")

    恩迪夫

    睡眠(25000)

    虽然上面的AutoIT脚本工作正常,但在执行AutoIT脚本后,webdriver脚本挂起。即使是共同制度。出来在使用上述AutoIT脚本处理弹出窗口后,不会执行println语句。

    我试图用机器人类处理这个弹出窗口,但运气不好,这似乎也不起作用。

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

    执行某些注册表设置后,此弹出窗口将成功禁用。xlsx或。RDP文件,而不是用于。PDF文件。但在我的例子中,我有一个测试用例,我需要下载一个。pdf文件,并继续执行其他webdriver脚本。

    伙计们,任何其他解决方法的建议都将不胜感激。

    谢谢你,苏德亨德兰

  • 共有1个答案

    程淮晨
    2023-03-14

    我也有同样的问题。在这种情况下,使用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();
        }
    

    您可以使用线程。sleep()而不是驱动程序。wait(),也应该可以工作。

     类似资料:
    • 问题内容: 我遇到的一种情况是,单击链接网页会打开一个弹出窗口。并且在弹出窗口打开之后,焦点位于弹出窗口中,并且主窗口被禁用。而且我无法将控件转移到弹出窗口。请看下面的代码。 我无法将控件从父窗口转移到弹出窗口。我知道以下命令。 但是它没有太大帮助。请帮我。 问题答案: 当我需要使用以下弹出窗口,关闭它并返回主窗口时,这是我使用的代码。当然,出于此答案的目的已对其进行了简化。它维护原始窗口(主窗口

    • 如何使用Selenium WebDriver处理登录弹出窗口?我在这里附上了示例屏幕。我如何输入/输入用户名和密码到这个登录弹出/警报窗口?

    • 我目前正在使用硒自动化应用程序,当单击按钮时会出现一个新的弹出窗口。我必须切换到该窗口并执行某些操作,例如搜索记录。 注意:父窗口和子窗口具有相同的标题。

    • 我有一个情况显示在下面的SS。 我正在用selenium(Java)测试一些web应用程序,在一个瞬间我同时得到了4个弹出窗口。我想把他们全部解雇,但实际上我不能得到其中的3个。 我在搜索如何处理多个弹出窗口,发现了这个主题:如何在Selenium中处理多个报警弹出窗口确认?-但那不是我要找的。 第一次driver.switchTo().alert()返回一个警报,我可以将它取消。但是第二次,它是

    • 问题内容: 我们正在针对现有代码库运行Selenium回归测试,并且Web应用程序中的某些屏幕使用弹出窗口作为中间步骤。 当前,我们在测试中使用以下命令: … 大多数情况下都可以使用 。偶尔测试将失败在与线 谁能建议一种更好,更 可靠的 方法? 另外,我们主要在IE6和7上运行这些测试。 问题答案: 有用!!只是为了让那些喜欢硒的人们更容易。 这对我使用IE7(正常模式)有效。 真是个令人毛骨悚然

    • 当你在Chrome中下载一个文件时,你会在屏幕底部弹出一个带有下载文件名称的窗口。如何在文件下载后使用Selenium Webdriver和Python关闭它?