如何使用 selenium ide 专注于新窗口?

2024-03-30

我正在尝试使用 selenium ide 来复制操作。该操作是单击打开新窗口的链接。如何让 selenium ide 聚焦在新窗口而不是另一个窗口上?它对我不起作用。


选择窗口

为此,您需要使用selectWindow | windowName命令。

要从另一个窗口返回主窗口,请执行以下操作selectWindow | null

Arguments:

    * windowID - the JavaScript window ID of the window to select

Selects a popup window using a window locator; once a popup window

已选择,所有命令都转到 那个窗户。选择主窗口 再次使用 null 作为目标。

Window locators provide different ways of specifying the window object:

按标题,按内部 JavaScript “名称”或 JavaScript 变量。

    * title=My Special Window: Finds the window using the text that

出现在标题栏中。当心; 两个窗口可以共享相同的标题。 如果发生这种情况,该定位器将 就选一个吧。 * name=myWindow:使用其内部 JavaScript 查找窗口 “名称”属性。这是第二个 参数“windowName”传递给 JavaScript 方法 window.open(url, 窗口名称、窗口功能、 ReplaceFlag)(其中 Selenium 拦截)。 * var=variableName: 部分弹窗未命名 (匿名),但与 JavaScript 中的变量名 当前应用程序窗口,例如 “window.foo = window.open(url);”。在 这些情况,你可以打开窗户 使用“var=foo”。

If no window locator prefix is provided, we'll try to guess what you

意思是这样的:

1.) if windowID is null, (or the string "null") then it is assumed the

用户指的是原始的 由浏览器实例化的窗口)。

2.) if the value of the "windowID" parameter is a JavaScript variable

当前应用程序中的名称 窗口,那么假设这个 变量包含返回值 从对 JavaScript 的调用 window.open() 方法。

3.) Otherwise, selenium looks in a hash it maintains that maps string

名称到窗口“名称”。

4.) If that fails, we'll try looping over all of the known windows

试图找到合适的 “标题”。因为“标题”不是 必然是独一无二的,这可能有 意外的行为。

If you're having trouble figuring out the name of a window that you want

要操纵,请查看 Selenium 识别名称的日志消息 通过 window.open 创建的窗口数量 (因此被拦截 硒)。您会看到类似的消息 每个窗口如下 打开:

debug: window.open call intercepted; window ID (which you can

与 selectWindow()) 一起使用是 “我的新窗口”

In some cases, Selenium will be unable to intercept a call to

window.open(如果调用发生在 或在“onLoad”事件之前,对于 例子)。 (这是错误 SEL-339。) 在这些情况下,你可以强制 Selenium 使用以下命令注意打开的窗口的名称 Selenium openWindow 命令,使用 一个空的(空白)网址,如下所示: openWindow("", "myFunnyWindow").

选择窗口(窗口ID)

选择弹出窗口

如果是弹出窗口,则执行以下操作selectPopUp | windowId然后返回主窗口selectWindow | null

selectPopUp(windowID)论据:

  • windowID - 弹出窗口的标识符,可以具有多种不同的含义

简化了选择弹出窗口的过程(并且不提供超出 selectWindow() 已提供的功能)。

  • 如果未指定 windowID 或指定为“null”,则选择第一个非顶部窗口。顶部窗口是由 selectWindow() 选择的窗口,无需提供 windowID 。当多个弹出窗口正在运行时,不应使用此功能。
  • Otherwise, the window will be looked up considering windowID as the following in order:
    1. 窗口的“名称”,由 window.open() 指定
    2. 一个 JavaScript 变量,它是对窗口的引用
    3. 窗口的标题。这与 selectWindow 执行的有序查找相同
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 selenium ide 专注于新窗口? 的相关文章

随机推荐

  • 如何在 MVC 中的单个 foreach 循环中创建水平表?

    在 ASP Net MVC 中 有什么方法可以将以下代码压缩为单个 foreach 循环吗 table class table tr td Name td td td tr tr td Item td tr table
  • Pandas 适用于多列输出的滚动

    我正在编写一个代码 它将滚动窗口应用于将返回多列的函数 输入 熊猫系列预期输出 3 列 DataFrame def fun1 series Some calculations producing numbers a b and c retu
  • Xcode 9.2 中缺少标头搜索路径、库路径和链接路径部分

    想在我的项目的设置面板中添加第三方库路径 但问题是没有标题搜索路径 库路径和链接路径部分 缺少标题搜索路径部分 I am using Xcode 9 2 and Swift 4 点击All and Combined按钮 您会看到标题搜索路径
  • 按长度对数组排序

    我有以下数组 http jsfiddle net 3NZsK http jsfiddle net 3NZsK 我需要按数组的长度对数组进行排序 如何找出数组中最大 第二大 第三大 最小哪一个 例如 我有以下虚拟函数 它可以获取第二大数组 h
  • Facebook 图表 API 与营销 API

    有人可以解释一下 facebook 的图表 API 和营销 API 之间的区别吗 还应该针对哪些请求使用哪一个 我一直在使用 facebook python SDK 来创建广告 但我时不时会遇到速率限制 但在我的营销 API 仪表板中我没有
  • 如何为 eclipse 和 android studio 提供单一的 android SDK 和 AVD

    我是 Eclipse 用户 并在其上轻松开发了 Android 应用程序 但最近 当我看到 android studio 出现并由 android 网站提供时 我想尝试一下 因为它看起来非常有前途 我已经在我的 D 盘中下载了 androi
  • 减少 CosmosDB 的预配置吞吐量

    我有一个 cosmos DB 它在数据库级别配置了 4 个容器和 400 个 RU 我添加了 2 个容器 并且在没有警告的情况下 配置的 RU 增加到了 600 个 下面的文档解释了为什么会发生这种情况 第 4 个以上的每个容器至少需要额外
  • 使用多维 std::initializer_list

    我有一个关于在 C 中使用多维 std intializer list 的问题 我有一个 Matrix 类 我希望能够像这样初始化它 Matrix
  • 通过构建所有 asset_path 值来避免 *.js.erb 文件

    因此 我想避免使用 ERB 处理 JavaScript 文件 这样我就可以获得正确的资源路径 例如图像 目前 这似乎是流行的方法 var myImage 当然 这需要将文件名更改为 erb 以便对其进行处理 我宁愿将 ERB 的丑陋隔离到项
  • rand() 在 C 语言中有多独特?

    我在用rand 对于需要唯一值的 6 位字段 我做对了吗 几率有多大 rand 可以在连续或频繁的通话中给我类似的值吗 当我使用 rand 时 它是独一无二的 但是 当我打电话时返回相同的号码srand time NULL or srand
  • Powershell脚本:无法读取执行程序的返回值

    我正在使用 PowerShell 运行一个执行的脚本wget获取网页 一个简单的数据库导入脚本 并分析其输出 错误消息或 确定 我正在使用答案中的代码上一个问题 https stackoverflow com questions 20345
  • 最新的浏览器中有内置的 javascript 字符串哈希函数吗?

    每当新版本的浏览器出现时 我都会听到添加新的东西 比如 webGL 和其他没有人真正知道它们是否能赶上的技术 但我想知道是否有人考虑过 JS 中的哈希函数 MD5 SHA1 等 等基本内容 我所说的最新浏览器也指当今的开发版本 例如 Ope
  • 如何使用 EF 6.0 中的代码优先方法从 sql 表中删除列?

    我错误地在数据库中添加了一列 名为doj现在 如果我想使用代码优先方法从表中删除该列 我应该做什么 我已经尝试过这些事情 1 从模型中删除列定义 2 删除了迁移历史记录 3 添加迁移4 更新数据库 但它仍然没有反映在数据库中 我哪里犯了错误
  • 在 Spark 中,广播是如何工作的?

    这是一个非常简单的问题 在 Spark 中 broadcast可用于有效地将变量发送给执行器 这是如何运作的 更确切地说 何时发送值 我一打电话就发送broadcast 或者何时使用这些值 数据到底发送到哪里 发送给所有执行者 还是只发送给
  • 将数字列表转换为范围

    我有一堆数字 请说以下内容 1 2 3 4 6 7 8 20 24 28 32 那里提供的信息可以用 Python 表示为范围 range 1 5 range 6 9 range 20 33 4 在我的输出中我会写1 4 6 8 20 32
  • Swing 应用程序 -> 拖放到桌面/文件夹

    当 Mac 的 Finder Windows 的 Explorer 将 Swing 应用程序中的特定项目拖放到桌面和文件夹时 如何获取我放弃的前路径 我很高兴教给我必要的课程和方法 这是一个小程序 但它适用于任何框架或窗口 public c
  • 根据内容拆分 .txt 文件

    我有一个巨大的 txt文件如下 small file content 1 br small file content 2 br small file content n br 我如何将其分割成n个文件 最好通过bash Use csplit
  • 将 models.py 拆分为多个文件

    我正在尝试拆分models py我的应用程序分成几个文件 我的第一个猜测是这样做 myproject settings py manage py urls py init py app1 views py init py models in
  • 如何声明两个列表具有相同的长度?

    我需要知道如何比较 Prolog 中两个列表的长度 这是我到目前为止所拥有的 sum N1 N2 checklength N1 N2 checklength N1 N2 L1 is length N1 What L2 is length N
  • 如何使用 selenium ide 专注于新窗口?

    我正在尝试使用 selenium ide 来复制操作 该操作是单击打开新窗口的链接 如何让 selenium ide 聚焦在新窗口而不是另一个窗口上 它对我不起作用 选择窗口 为此 您需要使用selectWindow windowName命