设置窗口矩形
WebDriver API 中的 Set Window Rect 命令会修改当前 window
关联的操作系统窗口的大小和位置。该命令充当 Get Window Rect 的 setter,后者返回的对象可以直接作为此命令的载荷传递。
某些设备子集不支持设置窗口尺寸或位置。在这些配置上,该命令将返回一个 不支持的操作 错误。为避免调用此命令时出错,可以根据会话是否将 setWindowRect capability
设置为 true 来有条件地调用它。
设置窗口矩形需要 x
、y
、width
和 height
作为输入。所有字段都是可选的,例如,该命令可以传递一个空对象来调用,在这种情况下,它将不起作用。要设置位置,需要同时指定 x
和 y
;相应地,要修改窗口尺寸,需要同时指定 width
和 height
。
设置宽度或高度时,不保证最终窗口尺寸会完全匹配请求的大小。驱动程序应将大于物理屏幕尺寸的值或小于最小窗口尺寸的值限制在范围内。一些驱动程序可能还有其他限制,例如无法以单像素增量进行调整。出于此原因,返回的 width
和 height
可能与 Window.outerWidth
和 Window.outerHeight
不完全匹配。
设置窗口位置在性质上类似于调用 Window.moveTo(x, y)
,但它通过绕过与窗口操作相关的安全限制来区分自己。
Set Window Rect 命令是阻塞式的。
语法
方法 | URI 模板 |
---|---|
POST | /session/{session id}/window/rect |
URL 参数
session id
-
会话的标识符。
负载
输入是一个 WindowRect
对象
x
-
窗口的水平位置,相当于
Window.screenX
。必须是 -(2^31) 到 2^31 - 1 范围内的数字、null 或 undefined。 y
-
窗口的垂直位置,相当于
Window.screenY
。必须是 -(2^31) 到 2^31 - 1 范围内的数字、null 或 undefined。 width
-
窗口的外部宽度,相当于
Window.outerWidth
。必须是 0 到 2^31 - 1 范围内的数字、null 或 undefined。 height
-
窗口的外部高度,相当于
Window.outerHeight
。必须是 0 到 2^31 - 1 范围内的数字、null 或 undefined。
Response
响应载荷是一个 WebWindow
对象
x
-
与
window
关联的操作系统窗口的水平位置,相当于Window.screenX
。 y
-
与
window
关联的操作系统窗口的垂直位置,相当于Window.screenY
。 width
-
与
window
关联的操作系统窗口的外部边界宽度,相当于Window.outerWidth
。 height
-
与
window
关联的操作系统窗口的外部边界高度,相当于Window.outerHeight
。
错误
- 无效参数
-
如果
WindowRect
载荷对象中的任何字段不符合类型或边界约束,或者只指定了x
/y
对或width
/height
对中的一个字段。 - 无效的会话 ID
-
会话不存在。
- 未找到该窗口
-
如果
window
已关闭。 - 意外的 alert 打开
-
用户提示(如
window.alert
)会阻止命令执行,直到处理完毕。 - 不支持的操作
-
如果驱动程序不支持修改窗口的大小或位置。这通常发生在移动设备上,因为浏览器具有固定的尺寸,无法在屏幕上移动。
您可以检查
setWindowRect capability
来判断设备是否支持此命令。
规范
规范 |
---|
WebDriver # set-window-rect |
浏览器兼容性
加载中…