Selenium:在平铺窗口管理器中调整窗口大小

时间:2015-08-05 05:39:52

标签: selenium

我正在使用平铺窗口管理器i3来运行selenium测试。有时我会使用Chrome& amp;除了PhantomJS之外的Firefox。我意识到一个人无法调整平铺的i3窗口的大小,所以我想知道是什么,如果有的话,可以调整窗口大小,或检测窗口当前是否平铺并将其设置为浮动?

我意识到一个选项是将chrome和firefox设置为始终在i3配置中运行浮动,但这会妨碍我的常规工作流程。

1 个答案:

答案 0 :(得分:1)

您实际上可以使用鼠标或the resize command调整平铺窗口的大小:

resize <grow|shrink> <up|down|left|right|height|width> [<px> px [or <ppt> ppt]]

这会在给定方向上增大或缩小窗口。使用可选参数,您可以指定应调整窗口大小的数量。第一个参数 - <px> px - 用于浮动窗口,默认为10 px。第二个参数 - <ppt> ppt用于平铺窗口,并以父容器的百分点数给出,默认为10 ppt

在默认配置中,有一个resize模式,可以通过 Mod + r Mod Alt Super ,具体取决于首次启动i3时的选择。在这种模式下,窗口 - 浮动和平铺 - 可以用向下向右增长,并与向上向左缩小

例如:假设您有一个容器,其中有3个相同宽度的窗口并排 - 每个占据容器宽度的33.33%。如果你在中间的那个上运行resize grow width,它将调整大小以占用父容器的43.33%,而任何一侧的窗口将缩小到28.33%。

至于将窗口设置为浮动,您始终可以使用command floating enable执行此操作,因此实际上无需查询当前的浮动状态。

如果您真的想要,可以从i3's IPC interface查询此信息。

概念证明:

  1. 使用i3-msg -t get_tree检索JSON编码的布局树(这可以将整个JSON放在一行中,所以也许你想要通过json_xsjson_pp或类似的更加人性化的计划)。
  2. 使用xdotool getactivewindow
  3. 获取当前窗口的ID
  4. 在树中查找属性为"window": <WINDOWID>
  5. 的节点
  6. 检查属性"floating"是否设置为"user_on"(或可能"<ANYTHING>_on",我不确定)