Python 如何通过pywinauto加速浏览应用程序?
从我想要自动化的应用程序中,我可以得到一组按钮的窗格。单击按钮可将新按钮集添加到窗格中,并从源集中删除其他按钮。按钮中的文本在一组中是唯一的,但在它们之间不是唯一的。按钮上的文本是我可以用来处理它并单击的唯一属性,所以单击后,按钮会附加到包含已单击按钮的列表中。窗格的子级和该数组的子级之间的区别是具有唯一文本的按钮 所以我的函数是:Python 如何通过pywinauto加速浏览应用程序?,python,winapi,pywinauto,Python,Winapi,Pywinauto,从我想要自动化的应用程序中,我可以得到一组按钮的窗格。单击按钮可将新按钮集添加到窗格中,并从源集中删除其他按钮。按钮中的文本在一组中是唯一的,但在它们之间不是唯一的。按钮上的文本是我可以用来处理它并单击的唯一属性,所以单击后,按钮会附加到包含已单击按钮的列表中。窗格的子级和该数组的子级之间的区别是具有唯一文本的按钮 所以我的函数是: def click_button(textOnButton, clickedButtons): children = paneWindow.children()
def click_button(textOnButton, clickedButtons):
children = paneWindow.children() # get buttons currently present
handles = []
for item in children:
handles.append((item.handle, item.texts()[0]))
unique_buttons = list(set(handles) - set(clickedButtons)) # remove clicked buttons
button = [t for t in handles if t[1].startswith(textOnButton)]
paneWindow.childWindow(handle=button[0][0]).click_input()
clickedButtons.append((button[0][0], button.[0][1]))
clickedButtons = []
click_button("FOO", clickedButtons)
click_button("IPSUM", clickedButtons)
它工作正常,但只需执行一个函数。。2到3秒,这肯定是不可接受的。最耗时的是获取窗格子项和单击按钮。有人知道如何加速吗
将该工具从pywinauto更改为其他工具对我来说是相当重要的。Python不是必需的。首先,应用程序对象使用哪个后端很重要:backend=“win32”更快。此外,还有一些技巧如何选择WindowsSpecification关键字以加快搜索速度。我计划在下一个主要版本中准备优化指南。它不太依赖于工具。我听到一个反馈说,用于Appium的WinAppDriver甚至比pywinauto还要慢。但我个人还没有检查它。首先,应用程序对象使用哪个后端很重要:backend=“win32”更快。此外,还有一些技巧如何选择WindowsSpecification关键字以加快搜索速度。我计划在下一个主要版本中准备优化指南。它不太依赖于工具。我听到一个反馈说,用于Appium的WinAppDriver甚至比pywinauto还要慢。但我个人还没有检查。