(я думал, что нашел проблему - но это только исправило маленькое репро, которое я построил, в то время как "реальная вещь" все еще падает.)
My HTML -Page содержит (среди прочего) этот бит:
<ol id="links">
<li id="links_1"><a href="http://stackoverflow.com">stackoverflow</a></li>
</ol>
В моем коде для проверки страницы я затем делаю:
el←FindElementById'links_1'
(ACTIONS.MoveToElement el).Build.Perform
, и это вылетает с
EXCEPTION: stale element reference: element is not attached to the page document
(Session info: chrome=81.0.4044.129)
Однако эта ошибка не представляется оправданной, так как элемент все еще жив:
el.Displayed
1
el.Text
stackoverflow
el.Location
{X=56,Y=282}
Как я могу исправить эту проблему?
(Среда это APL. Я оставил здесь несколько APL-подробностей, потому что боялся, что их можно было бы «отвлечь» от основной проблемы)
Во время моего исследования перед публикацией я увидел вопрос несвежий ссылка на элемент: элемент не прикреплен к документу страницы , но он, кажется, не применяется:
- , как показано, я делаю
FindElementById
и получаю к нему доступ сразу после его нахождения , DOM не изменяется, страница остается c. - объяснения о том, что она больше не является частью DOM, не применяются: она найдена и, как я пытался показать, я могу получить доступ к таким свойствам, как как
Displayed
или Text
.
Я также прошел ссылку , но это объяснение не помогло.
Кроме того, зацикливание отсутствует происходит и ничего не меняет страницу. Это действительно просто: GoToUrl * Find * MoveToElement.
Я удалил тэг chromedriver, так как могу повторить это с помощью Firefox и geckodriver. Однако, с geckodriver, я получаю «ИСКЛЮЧЕНИЕ: ссылка на веб-элемент, которого раньше не было:», когда я делаю MoveToElement
- но я могу сделать el.Click
и получить доступ к его свойствам точно так же, как с Chrome.