Эта ошибка обычно возникает, когда элемент был изменен или удален из-за того, что пользователь пытался сделать. Вы можете попробовать перехватить исключение, а затем снова щелкнуть
try {
element.FindElement(By.LinkText("Population and Immigration Authority")).Click();
}
catch(org.openqa.selenium.StaleElementReferenceException ex)
{
element.FindElement(By.LinkText("Population and Immigration Authority")).Click();
}
Webdriver внутренне использует метод getElementAt
и уникальный идентификатор UUID
для поиска элементов. Каждый раз, когда этот UUID
изменяется для элемента по какой-либо причине, и вызов, который делает пользователь, ссылается на старый UUID
, метод getElementAt
вызывает исключение. Вы также можете увидеть исключение, относящееся к методу fxdriver.cache.getElementAt
. Официальное объяснение этой ошибки можно найти здесь