Используя селен 2, есть ли способ проверить, устарел ли элемент?
Предположим, я инициирую переход с одной страницы на другую (A -> B). Затем я выбираю элемент X и проверяю его. Предположим, что элемент X существует как на A, так и на B.
Периодически X выбирается из A до того, как произойдет переход страницы, и не проверяется до перехода к B, вызывающего исключение StaleElementReferenceException Это легко проверить для этого условия:
try:
visit_B()
element = driver.find_element_by_id('X') # Whoops, we're still on A
element.click()
except StaleElementReferenceException:
element = driver.find_element_by_id('X') # Now we're on B
element.click()
Но я бы лучше сделал:
element = driver.find_element_by_id('X') # Get the elment on A
visit_B()
WebDriverWait(element, 2).until(lambda element: is_stale(element))
element = driver.find_element_by_id('X') # Get element on B