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

网页>>框架>>弹出窗口处理

谷梁镜
2023-03-14
问题内容

我有这个网页,我想使其自动化。这是应用程序的步骤和功能。

  1. 使用Selenium启动应用程序
  2. 单击某些按钮后,将在主页上弹出一个框架
  3. 我可以通过硒Web驱动程序在框架上执行操作
  4. 但同一框架中有一个日历图标。
  5. 单击日历图标后,将弹出一个带有日历和“确定”按钮的弹出窗口。
  6. 我可以在弹出窗口中选择日期,然后单击“确定”按钮,弹出窗口会自动关闭。
  7. 现在,我想再次切换到FRame来执行进一步的操作。但我无法这样做。
  8. 我的脚本因错误“找不到窗口。浏览器窗口可能已关闭”而崩溃。

下面是我的代码的一部分

Driver.findElement(By.xpath("//input[@id='VDC_VM_ScheduledTask.RequestedDateTime.ControlImage']")).click();
// clicking on calendar icon
Set afterPopup = Driver.getWindowHandles();
System.out.println(afterPopup);
afterPopup.removeAll(beforePopup);
System.out.println(afterPopup.size());
if(afterPopup.size() == 1) {
    Driver.switchTo().window((String)afterPopup.toArray()[0]);
    Driver.findElement(By.id("submitButton")).click();
   //    Switching windows and clicking Ok in calendar pop up window which closes it automatically
}
Driver.switchTo().frame(0);
// this step fails

问题答案:

尝试这样:

        String mainWindow = driver.getWindowHandle();
        Set<String> windows= driver.getWindowHandles();
        if (windows.size() > 1) {
            //first remove main window
            windows.remove(mainWindow);
            //switching to new/child window and perform some action on new window if required. Then close it.
            driver.switchTo().window(windows.iterator().next());
            driver.close();
            //switching back to mainWindow, Then continue with your actions.
            driver.switchTo().window(mainWindow);
            windows.clear();
        }


 类似资料:
  • 问题内容: 我需要使用Java或基于Javascript的自动化解决方案来操纵IE浏览器的“弹出窗口和下载对话框”。 我尝试了selenium2,但是它不能正常工作,因此其他建议也一样。实际上selenium2没有提供警报/下载对话框的正确处理,因此我正在考虑使用其他一些javascript / java解决方案。 使用“下载对话框”:我需要将下载的文件保存到特定位置。使用“警报对话框”:我需要检

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

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

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

  • 问题内容: 因此,我一直在用Qt为我的Python应用程序创建GUI。我现在遇到的情况是,按下按钮后,将执行适当的推迟操作,我们执行一些任务,然后需要打开一个单独的窗口,其中包含一两个东西。但是我似乎无法弄清楚如何创建这个新的单独窗口。谁能给我一个如何创建一个例子吗? 问题答案: 一个使您抓狂的常见错误是忘记将创建的弹出窗口的句柄存储在将保持活动状态的python变量中(例如,存储在主窗口的数据成

  • 问题内容: 我通过window.open打开了一个弹出窗口。使用JavaScript打开,我想在关闭此弹出窗口时刷新父页面。(onclose事件?)我该怎么办? 问题答案: 您可以使用“ window.opener”访问父窗口,因此,在子窗口中编写如下内容: