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

使用Selenium Webdriver切换到窗口句柄的另一种方法

艾飞宇
2023-03-14

我正在测试一个包含多个webview/页面的webview应用程序。为了获得webviews,我做了以下工作:

$driver.window_handles

它返回一个窗口索引数组,这些索引数组类似于['1'、'3'、'5'、'6'、'7'、'8']

$driver.switch_to.window('1') if 'My Title' not found; $driver.switch_to.window('3') and so on until I find the window.

共有1个答案

平庆
2023-03-14

您可以采取以下方法:

#create a array with window_id and its corresponding window page title
wnd_titl = driver.window_handles.map do |w|
  driver.switch_to.window(w)
  [w,driver.title]
end

#required window
win_id = wnd_titl.find { |e1,e2| e2 == 'My TITLE' }.first
driver.switch_to.window(win_id) #switched to the required window
 类似资料:
  • 目前,我已经开始使用Selenium2.0/Web-Driver为我工作的公司进行自动化测试。 目前我已经开发了大约20个测试,但是当我运行这些测试时,它们会为每个测试打开一个新的浏览器窗口。 我在注册测试用例中运行它,然后 在第二个测试用例中运行,我认为应该将焦点放回第一个窗口。 我还使用关闭正在创建的其他窗口,但我希望它们一开始就不打开。

  • 我面临的问题与这里描述的完全相同 但它是一个封闭的线程。在win7 IE 11上使用selenium webDrive2.48.2。情况是这样的,我有一个测试,点击一个按钮,应该打开一个新实验,这个新实验在chrome上的新选项卡和火狐上的同一个选项卡中打开,但是在运行IE11时在新窗口中打开通过硒。但是奇怪的是,当浏览器手动打开而不是通过selenium脚本打开时,它不会在新窗口中打开。代码所做

  • 使用Inspect.exe我可以看到应用程序组件的树结构中存在一个按钮,但我找不到获取该按钮句柄的方法。这是控件的Inspect.exe输出: 这个按钮的特殊之处在于它没有hwnd值。(hwnd: 0x0)。这是我试图获得对该按钮的引用的内容: 在本例中,hwnd变量是包含按钮的应用程序主窗口的句柄。 在阅读FindWindowEx的留档时,看起来似乎有多种方法可以使用不同的参数,我觉得我已经尝试

  • 本文向大家介绍python3 selenium 切换窗口的几种方法小结,包括了python3 selenium 切换窗口的几种方法小结的使用技巧和注意事项,需要的朋友参考一下 第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: 举例说明: 第二种方法: 使用场景: 打开两个窗口,需要定位到新打开的窗口 使用方法: 举例说明: 两种方法的区别: 1、第一种方法比较简单,能提升

  • 我需要一些帮助。我在最后写下了我的问题,并将首先解释我的代码到底应该做什么: 我正在制作一个与其他程序进行通信的程序。我需要我的软件能够点击另一个程序上的按钮,我相信这样做的合适代码是: 具有 但是,我不知道如何获取hWnd,它是同时运行的另一个程序的特定窗口上的特定按钮的句柄。我在某个地方读到,我可能会做以下事情: 哪里: 但是,我对FindWindowEX()函数有一些问题。 问题1:我看到的

  • 问题内容: 寻找有关如何获得新的“弹出”窗口的帮助,该窗口在单击“登录”按钮后触发显示。 我能够到达显示窗口的时间,但是我不相信我当前用来获取窗口“句柄”的代码是否正常运行。我的情况有所不同,因为我在页面内使用量角器,但是出现的新窗口不是基于角度的,因此当我在该窗口中时,我必须切换为仅使用Selenium WebDriver。(任何人都不知道这种方法是否有问题?) 在下面,您可以找到我用来创建se