dubravcik / pbixrefresher-python

Refresh Power BI reports programmatically for free
MIT License
122 stars 54 forks source link

Fails in closing time #22

Closed lockhart42 closed 5 years ago

lockhart42 commented 5 years ago

The script runs until Publish, then it does not wait for publish to finish and breaks when looking for windows to close.

Starting Power BI
Waiting  20 sec
Identifying Power BI window
Refreshing
Waiting for refresh end (timeout in  30000 sec)
Saving
Publish
Traceback (most recent call last):
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts\pbixrefresher.exe\__main__.py", line 9, in <module>
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pbixrefresher\pbixrefresher.py", line 85, in main
    win["Got it"].wait('visible', timeout = REFRESH_TIMEOUT)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\application.py", line 512, in wait
    lambda: self.__check_all_conditions(check_method_names, retry_interval))
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\timings.py", line 371, in wait_until
    func_val = func(*args, **kwargs)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\application.py", line 512, in <lambda>
    lambda: self.__check_all_conditions(check_method_names, retry_interval))
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\application.py", line 464, in __check_all_conditions
    ctrls = self.__resolve_control(self.criteria, retry_interval, float(retry_interval) // 2)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\application.py", line 256, in __resolve_control
    criteria)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\timings.py", line 436, in wait_until_passes
    func_val = func(*args, **kwargs)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\application.py", line 220, in __get_ctrl
    ctrl = self.backend.generic_wrapper_class(findwindows.find_element(**ctrl_criteria))
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\findwindows.py", line 84, in find_element
    elements = find_elements(**kwargs)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\findwindows.py", line 303, in find_elements
    elements = findbestmatch.find_best_control_matches(best_match, wrapped_elems)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\findbestmatch.py", line 494, in find_best_control_matches
    name_control_map = build_unique_dict(controls)
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\findbestmatch.py", line 473, in build_unique_dict
    ctrl_names = get_control_names(ctrl, controls, text_ctrls)
  File "c:\users\administrator\appdata\local\programs\python\python37\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\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\findbestmatch.py", line 219, in get_non_text_control_name
    ctrl_r = ctrl.rectangle()
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\base_wrapper.py", line 367, in rectangle
    return self.element_info.rectangle
  File "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pywinauto\uia_element_info.py", line 326, in rectangle
    bound_rect = self._element.CurrentBoundingRectangle
_ctypes.COMError: (-2147220991, 'An event was unable to invoke any of the subscribers', (None, None, None, 0, None))
lockhart42 commented 5 years ago

Found the file with the timeout option, modified it to 40s and it all worked out. Thanks!