Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过pywinauto加速浏览应用程序?_Python_Winapi_Pywinauto - Fatal编程技术网

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还要慢。但我个人还没有检查。