from pywinauto import application
app=application.Application()
app.connect(title_re = "| Zero Hedge", found_index = 0)
app.window_().SetFocus()
app.window_().TypeKeys('{F6}')
我有两个主要问题:
found-index究竟控制了什么?因为每次我改变它的值,结果都不一样。我如何决定它的价值,以确保我得到我想要的,包含“零对冲”的窗口?
代码有时会在没有found_index的情况下引发WindowAmbiguousError,或者具有许多不同的found_index值。但我很确定我只有一个标签的标题是“零对冲”。为什么它总是检测到很多窗口?我怎样才能修好它?
谢谢你的帮助。:)
请尝试在}则没有)。在
connect
调用中添加top_level_only=True
(可以删除found_index=0
)。方法connect
在某种意义上只连接到应用程序进程(进程是使用窗口标题找到的,而不是必需的顶层窗口)。但该进程只包含一个顶层窗口(app.window_()
默认搜索顶层窗口,而{避免歧义的另一个选择:
found_index
不是消除歧义的唯一方法。我想说,当其他标准不起作用时,这是最后一个边界。在编辑:顺便说一句,正如Roel提到的,}。所以在你的例子中,}。有许多隐藏的顶层窗口带有空标题。请小心使用
"a|b"
意味着"a"
或{"| Zero Hedge"
意味着"" (empty sting)
或{|
。在任何符号的正确regex是
.*
。点.
表示任何符号,而星*
表示任何重复次数。在你的案子应该是这样的:
".*Zero Hedge"
。在找到多个窗口是因为使用正则表达式匹配窗口标题,而正则表达式恰好匹配任何字符串。
| Zero Hedge
表示匹配" Zero Hedge"
或空字符串。在要解决此问题,您需要转义
|
:相关问题 更多 >
编程相关推荐