发布
社区首页 >问答首页 >pywinauto 循环等待程序的某个按键(现金支付)高亮,然后点击如何实现?

pywinauto 循环等待程序的某个按键(现金支付)高亮,然后点击如何实现?

提问于 2023-03-01 14:55:09
回答 0关注 0查看 353

我想使用pywinauto使用如题的功能,应用程序的这个按键是隔一段时间自动高亮一次,但是我尝试了以下的代码,运行一小会就会报错,查了好多也找不到解决办法,求懂得大佬解答一下

代码语言:javascript
代码运行次数:0
复制
while True:
    if SPwindow['实收费用GroupBox'].child_window(title="现金支付", control_type="Button").is_visible():
        SPwindow['实收费用GroupBox'].window(found_index=1).draw_outline()
time.sleep(1)

Traceback (most recent call last):

File "C:\Users\357704\PycharmProjects\pythonProject\clickPass.py", line 78, in <module>

if SPwindow['实收费用GroupBox'].child_window(title="现金支付", control_type="Button").wait('ready',timeout=100):

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\application.py", line 533, in wait

return self.wrapper_object()

^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\application.py", line 267, in wrapper_object

ctrls = self.__resolve_control(self.criteria)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\application.py", line 250, in __resolve_control

ctrl = wait_until_passes(

^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\timings.py", line 436, in wait_until_passes

func_val = func(*args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\application.py", line 222, in __get_ctrl

ctrl = self.backend.generic_wrapper_class(findwindows.find_element(**ctrl_criteria))

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\findwindows.py", line 84, in find_element

elements = find_elements(**kwargs)

^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\findwindows.py", line 305, in find_elements

elements = findbestmatch.find_best_control_matches(best_match, wrapped_elems)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\findbestmatch.py", line 495, in find_best_control_matches

name_control_map = build_unique_dict(controls)

^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\findbestmatch.py", line 474, in build_unique_dict

ctrl_names = get_control_names(ctrl, controls, text_ctrls)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\findbestmatch.py", line 320, in get_control_names

non_text_names = get_non_text_control_name(control, allcontrols, textcontrols)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\findbestmatch.py", line 219, in get_non_text_control_name

ctrl_r = ctrl.rectangle()

^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\base_wrapper.py", line 367, in rectangle

return self.element_info.rectangle

^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\357704\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto\uia_element_info.py", line 326, in rectangle

bound_rect = self._element.CurrentBoundingRectangle

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

_ctypes.COMError: (-2147220991, '事件无法调用任何订户', (None, None, None, 0, None))

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档