def _wait(self, state, message = None, timeout = None): """ Waits till menu is in the given `state` (`True` - opened, `False` - closed) in a given `timeout`. Shows error-`message` if it is not. Returns `True` or `False` - whether it reached given `state` or not. """ if timeout == None: timeout = self.timeout timer = microtime() # start the timer while self.opened != state: # constantly check whether it is in desired state if microtime() - timer >= timeout: # if elapsed time is more than timeout, then give up, if message: client.error(message) # show error, return False # and false-exit return True # if we got here, then menu is in desired state
def open_tab(self, tab): self.open() if self.tab_opened(tab): return self self.point_at_tab(tab) client.debug('Event: Click at tab #%d' % tab) mouse.click() timer = microtime() while not self.tab_opened(tab): # ждём пока не откроется вкладка if microtime() - timer >= self.timeout: # устали ждать client.error('Не удалось активировать вкладку меню.\nВозможно клиент не успевает реагировать на щелчки мыши. Попробуйте увеличить время ожидания в секции индивидуальных настроек.') # TODO i18n return self