в чем проблема?: ошибка application.connect () - PullRequest
2 голосов
/ 08 апреля 2019

Я начинающий разработчик, который начал изучать автоматизацию с помощью pywinauto.

Ошибка переполнения при использовании application.connect () для подключения к уже открытой программе.

Но приложение.start () работает нормально ....

Пожалуйста, помогите мне, если кто-то знает эту часть.

Исходный код и содержание ошибок следующие.

Исходный код :

import pywinauto

app = pywinauto.application.Application()

app.connect(title_re='Calculator')

Ошибка :

OverflowError Traceback (most recent call last)
in 

 1 import pywinauto

 2 app = pywinauto.application.Application()
 ----> 3 app.connect(title_re='Calculator')

d:\Anaconda3\lib\site-packages\pywinauto\application.py in connect(self, **kwargs)

 972 ).process_id

 973 else:

 --> 974 self.process = findwindows.find_element(**kwargs).process_id
 975 connected = True

 976

d:\Anaconda3\lib\site-packages\pywinauto\findwindows.py in find_element(**kwargs)

 82 so please see :py:func:find_elements for the full parameters description.

 83 """
 ---> 84 elements = find_elements(**kwargs)

 85

 86 if not elements:

d:\Anaconda3\lib\site-packages\pywinauto\findwindows.py in find_elements(class_name, class_name_re, parent, process, title, title_re, top_level_only, visible_only, enabled_only, best_match, handle, ctrl_index, found_index, predicate_func, active_only, control_id, control_type, auto_id, framework_id, backend, depth)

 279 return title_regex.match(t)

 280 return False

 --> 281 elements = [elem for elem in elements if _title_match(elem)]

 282

 283 if visible_only:

d:\Anaconda3\lib\site-packages\pywinauto\findwindows.py in (.0)

 279 return title_regex.match(t)

 280 return False

 --> 281 elements = [elem for elem in elements if _title_match(elem)]

 282

 283 if visible_only:

d:\Anaconda3\lib\site-packages\pywinauto\findwindows.py in _title_match(w)

 275 def _title_match(w):

 276 """Match a window title to the regexp"""

 --> 277 t = w.rich_text

 278 if t is not None:

 279 return title_regex.match(t)

d:\Anaconda3\lib\site-packages\pywinauto\win32_element_info.py in rich_text(self)

 81 def rich_text(self):

 82 """Return the text of the window"""

 ---> 83 return handleprops.text(self.handle)

 84

 85 name = rich_text

d:\Anaconda3\lib\site-packages\pywinauto\handleprops.py in text(handle)

 86 length += 1

 87

 ---> 88 buffer_ = ctypes.create_unicode_buffer(length)

 89

 90 ret = win32functions.SendMessage(

d:\Anaconda3\lib\ctypes_init_.py in create_unicode_buffer(init, size)

 286 return buf

 287 elif isinstance(init, int):

 --> 288 buftype = c_wchar * init

 289 buf = buftype()

 290 return buf

OverflowError: cannot fit 'int' into an index-sized integer

1 Ответ

0 голосов
/ 09 апреля 2019
import pywinauto
app = pywinauto.Application(backend='uia').start('calc.exe')

попробуйте это, если у вас возникли проблемы, вы должны сказать, что backennd - это то, что у меня хорошо работает.

...