blink2004
(Kosmos)
27.Сентябрь.2016 10:24:16
#1
Добрый день.
Есть динамическая форма, на ней есть <input>
. Когда вводится в него последний символ - он перерисовывается. Текст ввожу так:
findElement(By.xPath(".//div[@id='data']/input")).sendKeys(data);
После ввода последнего символа возникает ошибка:
StaleElementReferenceException: stale element reference: element is not attached to the page document
Обновлял версию дрейвера для Chrome. Не помогло. Ставил принудительные задежки после ввода каждого символа на 2 сек - не помогло.
В чем суть данной ошибки и как можно её пофиксить?
вам необходимо заново найти этот же элемент, тк как вы и сказали, он перерисовывается
Alekssh1fter
(Алексей Бобруцков)
27.Сентябрь.2016 13:34:27
#3
Если все настолько плохо, что только после ввода последнего символа дом перестраивается- попробуй тупо ловить этот экспшен, ну это как первая мысль, не вдаваясь в детали
1 лайк
blink2004
(Kosmos)
27.Сентябрь.2016 14:03:24
#5
ищется заново при каждом вводе символа + wait стоит.
blink2004
(Kosmos)
27.Сентябрь.2016 14:08:51
#6
решилось простым способом, хоть немного и не по фен-шую.
В данном случае использовал:
jsExecute("$('#data > input').value('" + data + "')");
jsExecute("$('#data > input').keyup()");
Alekssh1fter
(Алексей Бобруцков)
28.Сентябрь.2016 09:49:18
#7
Ну с тем же успехом мог бы кнопку “TAB” нажимать, без использования JS ,мне так кажется
blink2004
(Kosmos)
28.Сентябрь.2016 09:52:30
#8
нет. Элемент перерисовывается не зависимости от вводимого символа.
Alekssh1fter
(Алексей Бобруцков)
28.Сентябрь.2016 13:41:17
#9
ТАБ перекинет курсор на следующее поле, или просто фокус с поля уберет