def wait_prop_chage_to(self, prop_name, new_val, timeout=None): prop_id = Adapter.try_get_property_id(prop_name) if prop_id is None: raise FailExit('...') wait_while( lambda: new_val != self._automation_element. GetCurrentPropertyValue(prop_id), timeout)
def wait_prop_chage(self, prop_name, timeout=None): prop_id = Adapter.try_get_property_id(prop_name) if prop_id is None: raise FailExit('...') self.__wait_chages__prev_prop = self._automation_element.GetCurrentPropertyValue( prop_id) wait_while( lambda: self.__wait_chages__prev_prop == self._automation_element. GetCurrentPropertyValue(prop_id), timeout)
def _change_state_to(self, target_state, method, check_timeout): """ Изменением состояние CheckBox на желаемое. :param bool target_state: Желаемое состояние CheckBox (`True` -- галочка установлена) :param str method: Метод проверки: `click` -- через клик в центр контрола, а `uia` -- через `TogglePattern`. """ # Если уже, где надо, то просто выходим: if self._check_state(target_state, method): return False # Меняем состояние: if method == 'click': self.region.click() else: # Метод 'uia': init_state = self._state('uia') self._uia_toogle() # Ждем смены состояния на новое: if not wait_while(lambda: self._check_state(init_state, 'uia'), check_timeout): raise Exception( 'CheckBox.uncheck(...): error change state to {}: init = {}, current = {} (timeout {})' .format(target_state, init_state, self._state('uia'), check_timeout)) # Если сменилось на новое, но не желаемое, значит состояний три и надо еще раз Toogle(): if not self._check_state(target_state, 'uia'): self._uia_toogle() # Дожидаемся жалаемого состояния: if not wait_while_not(lambda: self._check_state(target_state, method), check_timeout): raise Exception( 'CheckBox.uncheck(...): checkbox is still {} after {} seconds'. format(self._state(method), check_timeout)) return True
def wait_for_button_unmarked(self, timeout=5): if not wait_while(self.is_button_marked, timeout): raise Exception( 'pikuli.HWNDElement: wait_for_button_unmarked(...) of %s was failed' % str(self))
def wait_for_invisible(self, timeout=5): if not wait_while(self.is_visible, timeout): raise Exception( 'pikuli.HWNDElement: wait_for_invisible(...) of %s was failed' % str(self))
def wait_vanish(self, **kwargs): timeout = kwargs.pop('timeout', None) return wait_while( lambda: self.find(**dict(kwargs, exception_on_find_fail=False)), timeout)