当前位置: 首页 > 面试题库 >

Java或Javascript中的窗口对话框和弹出窗口处理

东方志尚
2023-03-14
问题内容

我需要使用Java或基于Javascript的自动化解决方案来操纵IE浏览器的“弹出窗口和下载对话框”。

我尝试了selenium2,但是它不能正常工作,因此其他建议也一样。实际上selenium2没有提供警报/下载对话框的正确处理,因此我正在考虑使用其他一些javascript
/ java解决方案。

使用“下载对话框”:我需要将下载的文件保存到特定位置。使用“警报对话框”:我需要检查显示的消息并单击特定按钮。

任何建议表示赞赏。谢谢。


问题答案:

我使用硒1,它可以很好地处理我的应用程序中的弹出窗口。

    //Click on browse file button, open a popup
    selenium.click("//input[@value='Browse...']");

    //waiting for popup to load
    selenium.waitForPopUp("_Dialog", "30000");

    //selecting the popup by passing window name
    selenium.selectWindow("name=_Dialog");

    //click a link inside pop up window
    selenium.click("link=something");

    //Put other popup operations here

    //click cancel button for pop up
    selenium.click("cancel");

    //back to main window
    selenium.selectwindow("null")

要从警报框中获取消息,请使用selenium.getAlert();。这将以字符串形式返回包含在警报框中的消息。

另外,有时需要在切换到警报之前检查是否已发生警报。

        int noofWindows = selenium.getAllWindowNames().length;
        if (noofWindows > 1){
        //selects the second window 
        selenium.selectWindow(selenium.getAllWindowIds()[2]);
        //Prints the message in the alert window
        System.out.println(selenium.getAlert());
        }

如果不需要在IE中运行测试,请在执行代码之前使用firefox(* chrome)并关闭所有其他窗口。

我希望这可以帮助你。

*所有提及的代码均用于处理JavaScript弹出窗口。我不确定这是否适用于Vb脚本。

编辑

我认为IE下载弹出窗口是Windows事件,因此无法直接由Selenium处理,因此您必须使用Java AWT或AutoIT。

AutoIT脚本应该类似于

WinWaitActive(windowTitle)
ControlClick(windowTitle,"",buttonName)

并将其另存为IEsave.exe。注意:我没有尝试过此AutoIT脚本。

现在,您已从程序中执行IEsave.exe。我在这里使用Java。

java.lang.Runtime.getRuntime().exec("c:/IEsave.exe");

这将执行该文件,该文件将依次处理Windows的保存按钮事件。

您可以创建类似的exe文件来处理其他窗口的事件。

希望这能解决您的问题。



 类似资料:
  • 我不知道为什么youtue_title和youtube_description是空的???在我添加文本到这个编辑文本???我一直这样做为什么现在它不工作??? 有问题吗,因为它在弹出窗口中?

  • 本文向大家介绍javascript 中的console.log和弹出窗口alert,包括了javascript 中的console.log和弹出窗口alert的使用技巧和注意事项,需要的朋友参考一下 主要是方便你调式javascript用的。你可以看到你在页面中输出的内容。 相比alert他的优点是: 1.他能看到结构话的东西,如果是alert,淡出一个对象就是[object object],但是

  • 问题内容: 我有这个网页,我想使其自动化。这是应用程序的步骤和功能。 使用Selenium启动应用程序 单击某些按钮后,将在主页上弹出一个框架 我可以通过硒Web驱动程序在框架上执行操作 但同一框架中有一个日历图标。 单击日历图标后,将弹出一个带有日历和“确定”按钮的弹出窗口。 我可以在弹出窗口中选择日期,然后单击“确定”按钮,弹出窗口会自动关闭。 现在,我想再次切换到FRame来执行进一步的操作

  • 问题内容: 有人可以建议我如何在Java Swing中实现弹出窗口。我希望弹出窗口是模式窗口(打开弹出窗口时用户无法返回主窗口)。 我尝试使用JDialog进行操作,但是它只允许一个小部件供用户输入,而我需要多个小部件。我在这里可能是错的,但这就是我能够做到的。 感谢你的帮助。 问题答案: 使用一个JDialog。可以添加的内容没有限制,可以将所需的内容添加到JDialog中(与使用JFrame时

  • 问题内容: 我想使用Firefox浏览器,使用RSelenium从网站下载文件。我正确地完成了所有操作(导航,选择正确的元素并写下我想要的内容);现在,我单击“下载”按钮,然后打开一个Firefox弹出窗口,并询问我是否要下载文件或“用…打开”。 不幸的是,由于隐私限制,我无法编写示例。 我的问题是:如何在需要时切换到弹出窗口/警报并单击“确定”? 我尝试了以下方法,但均未成功: 我也试过了 但是

  • Popup 是一种可以包含任何Html内容的弹出窗口,从App的主内容区域上弹出。 Popup 和其他所有的遮罩图层一样,是所谓的“临时视图”的一部分。 Popup 布局 Popup 布局相当简单. 你所需要做的就是将放到 body 里正确的位置上: <div class="modal modal-no-buttons"> ... <div class="popup"> An