【发布时间】:2017-10-20 16:32:25
【问题描述】:
很明显QWidget按钮被按下和释放,不幸的是没有触发任何动作。
环境类似于find qwidget object text by using pywinauto。该代码使用来自How to click a 'next' button of a window using python 的绝对坐标。
程序运行后,目标窗口将获得焦点。光标开始靠近目标窗口的中心。然后它移动到按钮,按下按钮,因为颜色变为向下颜色。然后释放按钮,光标移回窗口中心。只缺少一件事,目标窗口应用程序没有采取任何行动。
有一个解决方法:如果我将鼠标移动到窗口的标题并在正确的时间单击,则自动单击按钮将触发实际动作。这让我对为什么会发生这种情况感到困惑,并且无法考虑解决方案。
app1 = Application()
app1.connect(title_re='^Quartus Prime Programmer.*$')
app1.QWidget.print_control_identifiers()
win1 = app1.QWidget
rect1 = win1.rectangle()
coor1 = (rect1.left+64,rect1.top+350) # 64, 350: "add file"
win11 = win1.TopLevelParent()
for i in range(3):
win11.SetFocus()
win11.PressMouseInput(coords=coor1)
time.sleep(1.3)
win11.ReleaseMouseInput()
time.sleep(3.0)
【问题讨论】:
-
注意到这个关于 UAC stackoverflow.com/questions/33254091/… 但认为这无关紧要。
-
是的,您找到的答案有点过时了。 :) pywinauto 0.6.0 于 2016 年底发布,最近进行了一些更新。
-
嗯...该应用看起来像部分支持 MSAA 的旧 Qt4 应用。您可以在
Inspect.exe中看到许多控件,但其中许多控件不可用。
标签: python windows user-interface pywinauto