t.me/atinfo_chat Telegram группа по автоматизации тестирования

Ошибка при динамической перерисовке элемента DOM

Теги: #<Tag:0x00007f9af9fec0b8> #<Tag:0x00007f9afa00bee0> #<Tag:0x00007f9afa00bbe8> #<Tag:0x00007f9afa00baa8>

Добрый день.
Есть динамическая форма, на ней есть <input>. Когда вводится в него последний символ - он перерисовывается. Текст ввожу так:

findElement(By.xPath(".//div[@id='data']/input")).sendKeys(data);

После ввода последнего символа возникает ошибка:

StaleElementReferenceException: stale element reference: element is not attached to the page document

Обновлял версию дрейвера для Chrome. Не помогло. Ставил принудительные задежки после ввода каждого символа на 2 сек - не помогло.

В чем суть данной ошибки и как можно её пофиксить?

вам необходимо заново найти этот же элемент, тк как вы и сказали, он перерисовывается

Если все настолько плохо, что только после ввода последнего символа дом перестраивается- попробуй тупо ловить этот экспшен, ну это как первая мысль, не вдаваясь в детали

1 Симпатия
1 Симпатия

ищется заново при каждом вводе символа + wait стоит.

решилось простым способом, хоть немного и не по фен-шую.
В данном случае использовал:

jsExecute("$('#data > input').value('" + data + "')");
jsExecute("$('#data > input').keyup()");

Ну с тем же успехом мог бы кнопку “TAB” нажимать, без использования JS ,мне так кажется

нет. Элемент перерисовывается не зависимости от вводимого символа.

ТАБ перекинет курсор на следующее поле, или просто фокус с поля уберет