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

如何使用selenium firefox webdriver处理多个弹出窗口

葛承德
2023-03-14

我有一个情况显示在下面的SS。

我正在用selenium(Java)测试一些web应用程序,在一个瞬间我同时得到了4个弹出窗口。我想把他们全部解雇,但实际上我不能得到其中的3个。

我在搜索如何处理多个弹出窗口,发现了这个主题:如何在Selenium中处理多个报警弹出窗口确认?-但那不是我要找的。

第一次driver.switchTo().alert()返回一个警报,我可以将它取消。但是第二次,它是空的,并且不可能打开剩余的弹出窗口。

我还尝试了本主题(https://sqa.stackExchange.com/questions/8416/how-to-switch-handle-close-specific-popup-window-when-multiple-popups-are-ope)中的内容,但它只返回一个句柄,因此没有多个窗口可以切换。

所以,我的问题是,我不能得到剩余的三个弹出并将其解雇,任何提示或某人有相同的问题?

多谢了。

共有2个答案

阳念
2023-03-14

我也遇到过类似的问题,不得不用autoit代替Selenium来解决。试试看(page_title是弹出窗口的标题,假设您在windows计算机上):

from win32com.client import Dispatch
autoit = Dispatch("AutoItX3.Control")

def _window_movement_windows(page_title):
        autoit.WinSetOnTop(page_title, "", 1)
        autoit.WinActivate(page_title, "")
        autoit.WinWaitActive(page_title)

以下是如何安装和使用AutoIt:在Python中调用AutoIt函数

孔弘盛
2023-03-14

尝试获取弹出的文本,String=driver.switchTo().alert().getText(),然后尝试从第一个弹出切换到另一个弹出

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

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

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

  • 我需要一个解决方案,使用SeleniumWebDriver从IE11中的web应用程序下载PDF文件。请找到下面我正在尝试处理的弹出窗口。 下面是我尝试处理IE弹出窗口的方法,但不幸的是没有任何帮助。 > 我试图使用下面的AutoIT脚本使用AutoIT来处理这个场景。 睡眠(5000) 本地$hIE=wingthandle(“[Class:IEFrame]”) 本地$hCtrl=ControlG

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

  • 问题内容: 我正在尝试使用以下代码处理身份验证弹出窗口: 当我执行测试时,页面会显示身份验证弹出窗口,并且仍会加载直到我单击“取消”按钮。那一刻,我可以访问下一页,这意味着身份验证成功,但仍然始终显示身份验证弹出窗口 问题答案: 警报方法使你可以跳过“ Http基本身份验证”框。 从Selenium 3.4开始,它仍处于beta版本 目前,仅针对