【问题标题】:AutoIT get child window from a parent windowAutoIT 从父窗口获取子窗口
【发布时间】:2015-01-29 10:29:16
【问题描述】:

我遇到了一个对我来说看起来微不足道的问题,但在谷歌上搜索了一个小时后我找不到有效的解决方案。

我要填写一个窗口安全弹出窗口。

这是 selenium 测试的一部分,可以与其他测试并行运行。 因此,为了确保我的 autoit 脚本填充正确的弹出窗口(而不是形成另一个正在运行的测试),我想将此弹出窗口标识为父窗口的子窗口。有没有简单的方法可以做到这一点?

到目前为止我的代码:

$browserHandl = WinWait($parentTitle)
WinActivate($browserHandl, "")

$popUpHandl = WinWait("Windows Security")

所以我担心 WinWait 会返回当前在机器上打开的所有打开的 Windows 安全弹出窗口之一。

所以:
1. 有没有办法获取父窗口的子窗口句柄?
2. 我确实会遇到同时运行多个测试的竞争条件,这是否正确?

【问题讨论】:

  • EnumChildWindows api(autoit 中的_WinAPI_EnumChildWindows,帮助文件有一个例子)。但是,我怀疑是否曾经有不止一个活动的(或就此而言可见的)Windows 安全窗口。也许你可以看看 WinWaitActive。
  • 实际上打开多个安全窗口是很常见的。我会研究这个api。非常感谢。

标签: autoit


【解决方案1】:

input box open

input box hidden

我使用进度来隐藏我需要的东西。 添加#包括 $file = GUICtrlCreateInput("", 10, 5, 350, 25) 选框需要 3 行 本地 $iProgress = GUICtrlCreateProgress(30, 10, 270, 20, $PBS_MARQUEE) GUICtrlSendMsg($iProgress, $PBM_SETMARQUEE, 1, 50) 并使其覆盖输入框

和 0 停止和删除选取框 GUICtrlSendMsg($iProgress, $PBM_SETMARQUEE, 0, 50) ;发送消息 $PBM_SETMARQUEE 和 wParam 为 0 以停止滚动选框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多