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

Python-Selenium-如何找出它是一个窗口、iframe还是弹出窗口

芮岳
2023-03-14

我正在尝试使用Python Selenium WebDriver自动化一些测试用例。我点击一个按钮,打开一个新的窗口/iframe/popup。它需要在文本框中添加一些数据,并从放入框中选择一些数据。我有两个问题,

  1. 如果是Mozilla中的firepath中的窗口/iframe/弹出窗口,如何查找?
  2. 如何获取句柄?

这里有代码,zenoss_url=“http://xxxxx/”xpath_uname=“html/body/form/div/div/input[1]”xpath_pwd=“html/body/form/div/div/input[2]”xpath_submitButton=“html/body/form/div/div/input[3]”xpath_eventsTab=“html/body/div[7]/div/div/div/div[2]/ul/li[2]/div/div/a”driver=

我不确定该用什么“名字”替换?????

感谢任何帮助。


共有1个答案

太叔俊侠
2023-03-14

您的html/body/div[11]路径只是框架范围内的xpath。当导航到帧和子帧时,您可以采用以下几种方法;从查找帧的索引到查找帧的名称。如果使用firepath检查框架内的元素,它将只给出该元素的xpath该框架的范围。框架就像盒子一样在彼此之间工作;为了到达第二个盒子,你得打开第一个盒子往里面看。

//In C# 
driver.switchTo().Frame("FirstFrameFound"); 
//To close the box again and get back to the overall main box. 
driver.switchTo().defaultContent(); 

如果你的第二帧是第一帧的子帧,你必须潜入第一帧,然后切换到第二帧与里面的元素交互。

//In C# 
//Switch to the first frame 
driver.switchTo().Frame("FirstFrameFound"); 
//Switch to the second frame 
driver.SwitchTo().Frame("SecondFrame"); 
//Now look for your element that you wish to interact with. 
driver.FindElement(By.XPath("//html/body/div[11]")); 
//To close the box again and get back to the overall main box. 
driver.switchTo().defaultContent(); 

更多信息请看这里的帖子。

//When dealing with new window and the parent. 
//Switch to the last window that opened
driver.SwitchTo().Window(driver.WindowHandles.Last()); 
//Perform your actions
driver.Close(); 
//Switch back to the first window 
driver.SwitchTo().Window(driver.WindowHandles.First()); 
 类似资料:
  • 所以我正在c#winform中使用硒火狐web驱动程序,我在下面有这段代码来获取弹出窗口的句柄,当您单击“webtraffic_popup_start_button”时显示,它应该获得弹出窗口的句柄,但弹出句柄与当前句柄相同。 任何帮助将不胜感激 这就是弹出式菜单的样子。

  • 如何最大化Webdriver中的Iframe弹出窗口?如scrrenshot所示,在iframe中打开的“添加工作经验”部分中有许多问题。现在,当我试图回答这些问题时,我得到了以下异常:-“线程中的异常”main“org.openqa.selenium.ElementNotVisibleException:错误消息= 我认为这一定是因为在iFrame中打开的弹出窗口没有处于最大化状态,许多问题都不

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

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

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

  • 当我试图单击位于弹出菜单后面的按钮时,我收到以下错误消息。 此错误消息能够识别阻止我单击的内容的名称 我如何获得这个名称(作为一个元素),以便进行修改, 等待功能不适用,因为此弹出窗口不会消失。我试过网络驱动程序。ActionChains,但它不能解决这个问题