Разница между E C .element_to_be_clickable и E C .presence_of_element_located для щелчка () элемента - PullRequest
0 голосов
/ 29 апреля 2020

Я получаю TimeoutExceptions при периодическом нажатии на элемент. Я пытался с явными ожиданиями и time.sleep (). Это работает некоторое время, и я снова получаю исключения.

Я хочу понять, вызвано ли это ожидаемым состоянием.

WebDriverWait(self.driver, 40).until(EC.element_to_be_clickable((By.XPATH, <locator>  ))).click()

Поможет ли это избежать исключения времени, если я использую условие ниже?

element = WebDriverWait(self.driver, 40).until(EC.presence_of_element_located((By.XPATH, <locator>  )))
element.click()

1 Ответ

0 голосов
/ 29 апреля 2020

На основе официальной документации по селену и реализации кода.

Наличие определения элемента:

Element to be presence in the DOM, no additional checks are being performed.
If the webdriver find the element, returns true.

Элемент, на который можно нажимать:

It performance check first if the element is displayed, width and height above 0, if does not have some additional flags like hidden etc.
Additionally check if its enabled. Means no 'disabled' state.

If all this checks are positive returns true.

Ожидаемые условия выполняются следующее условие в al oop для таймаута 'defined'. Он будет опрашивать до тех пор, пока не будет получено состояние «true» для условия, соответственно, и результат «false» продолжит l oop, пока не будет достигнуто максимальное время ожидания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...