如何摆脱 double_click_input() 动作的延迟?

帕维利西

有没有办法摆脱 double_click_input() 操作的延迟?

我要做的是双击编辑框,然后在此处键入键。也许这两个动作都有一些延迟,所以整个过程执行起来看起来很慢。

代码:

myApp = Desktop(backend='uia').window(title_re='myTitle_re')    
myApp.window(auto_id='myAutoId').window(title='myTitle').double_click_input()
myApp.descendants(title='myTitle', control_type='Edit')[1].type_keys('myKeys')

还有一个问题:我在这里尝试使用 double_click() ,但它总是抛出异常:

AttributeError: WindowSpecification 类没有“double_click”方法。

然后我试过了 myApp.window(auto_id='myAutoId').window(title='myTitle').wrapper_object().double_click()

并得到:

AttributeError: 'ListItemWrapper' 对象没有属性 'double_click'

我应该改变什么才能得到这份工作?

我正在使用 pywinauto 0.6.3。

瓦西里·里亚博夫

回答您的第一个问题,您可以使用全局设置将一些时间设置为空。对于double_click_input

from pywinauto.timings import Timings
Timings.after_clickinput_wait = 0.0
Timings.after_setcursorpos_wait = 0.0

对于真实的用户输入(*_input方法),更改时间可能会导致修改后的序列不起作用。但您可以自行试验风险。有时最好使用使用窗口消息WM_CLICK例如(对于“win32”后端)或 UIAutomation 模式(例如 Invoke Pattern)(对于“uia”后端)的静默方法

double_click没有为“uia”实现,因为不清楚哪个 UIAutomation 模式应该被解释为双击操作。我们有方法.invoke()ButtonWrapper.click = invoke别名。但是对于非按钮 InvokePattern 可能有不同的含义。这就是为什么我们将其保留为.invoke().

PS关于遗留属性文本......它可以通过.legacy_properties()[u'Value']为您的案例(或返回的字典中的其他值)获得。set_window_text/set_edit_text使用 ValuePattern 的方法,因此可以在没有任何技巧的情况下静默设置文本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章