2017-09-19 2 views
1

안녕하세요 스택 오버플로 커뮤니티,NULL COM 포인터 액세스 오류를 디버깅하려면 어떻게해야합니까?

클라이언트의 독점 응용 프로그램을 자동화해야합니다. 일부 예제 코드 (here)를 성공적으로 실행할 수있었습니다 (예 : pywinauto가 메모장에서 작동 함). 독점적 인 응용 프로그램의 경우,이 응용 프로그램에 대해 동일한 NULL COM 포인터 액세스 오류가 발생하여 elements_from_uia_array(ptrs_array, cache_enable)의 최종 호출이 실패한 것처럼 보입니다. 이 문제를 어떻게 해결해야합니까?

  1. 환경 : 윈도우 10, 파이썬 3.6.2, pywinauto-0.6.3
  2. 관찰 : 문맥

    여기에는 NULL의 COM 오류가 구글 크롬을 자동화하지 & 메모장

입니다 WindowsSpecification에서 래퍼 객체를 만들려고 할 때 얻은 스택 추적. 모든 최상위 창에 print_control_identifiers()도 동일한 오류가 발생합니다.

>>> test = actual_window.child_window(auto_id="_buttonFindStudent",control_type="Button") 
>>> test 
<pywinauto.application.WindowSpecification object at 0x000002277006DC50> 
>>> profit = test.wrapper_object() 
Traceback (most recent call last): 
    File "<pyshell#30>", line 1, in <module> 
profit = test.wrapper_object() 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\application.py", line 254, in wrapper_object 
ctrls = self.__resolve_control(self.criteria) 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\application.py", line 245, in __resolve_control 
criteria) 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\timings.py", line 425, in wait_until_passes 
func_val = func(*args) 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\application.py", line 209, in __get_ctrl 
ctrl = self.backend.generic_wrapper_class(findwindows.find_element(**ctrl_criteria)) 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\findwindows.py", line 84, in find_element 
elements = find_elements(**kwargs) 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\findwindows.py", line 214, in find_elements 
depth=depth) 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\uia_element_info.py", line 283, in descendants 
elements = self._get_elements(IUIA().tree_scope["descendants"], cond, cache_enable) 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\uia_element_info.py", line 262, in _get_elements 
return elements_from_uia_array(ptrs_array, cache_enable) 
    File "C:\Users\SK2\AppData\Local\Programs\Python\Python36\lib\site-packages\pywinauto\uia_element_info.py", line 48, in elements_from_uia_array 
for n in range(ptrs.Length): 
ValueError: NULL COM pointer access 
+0

이 문제와 유사합니다 : https://github.com/pywinauto/pywinauto/issues/296 곧 수정 될 예정입니다 (이번 달). –

+0

[이 지점] (https://github.com/airelil/pywinauto/archive/dev.zip)에서 수정 프로그램을 사용해 볼 수 있습니까? –

+0

수정 사항을 시도하고 알려 드리겠습니다! – AMemberofDollars

답변

0

pywinauto==0.6.4 수정 (단지 PyPI에 게시)이 문제를 해결합니다. 오랫동안 기다려서 미안해. pip install -U pywinauto으로 업그레이드하십시오.