Size: a a a

2020 February 13

B

Bola in JS for testing
Ilya Murashka
искать его все время заново? хранить селекторы, а не элементы? я так решал эту проблему
у меня и так ищет заново каждый раз
источник

OK

Oleksandr Khotemskyi in JS for testing
Bola
на одном элементе стал ловить ошибку StaleElementReferenceError: stale element reference: element is not attached to the page document

как отследить, что элемент перерисовывается? или в чем еще может быть проблема?
^^^^
источник

OK

Oleksandr Khotemskyi in JS for testing
Bola
у меня и так ищет заново каждый раз
код не врет… значит где то не ищет
источник

MB

Michael Bodnarchuk in JS for testing
mkots
Я и не знал что у этого чата есть канал)
потому что мы скромняшки
источник

B

Bola in JS for testing
Oleksandr Khotemskyi
если вкратце почему летит:

const links = $$(‘a’) // getting all links

await links.map(async (link) => {
    await link.click() // clicking every link and asserting something.
    expect(blabla).toEqual(ololo)
    await browser.navigate().back() // going back to click on next link
})

такой цикл уходит с страницы, потом возвращается, но ссылки уже перерисовались, в такой итерации протракторовская ленивость работает очень плохо.
у меня там нет цикла
это старые тесты на webdriverjs - и там сделано очень  просто:
- ждем elementIsLocated + ждем visible (каждый раз передавая локатор,н е не webelement)
- пробуем получить текст из элемента, но передаем не элемент, а снова поиск по findElement(locator) и тут падает
источник

BO

Boris Osipov in JS for testing
Bola
у меня там нет цикла
это старые тесты на webdriverjs - и там сделано очень  просто:
- ждем elementIsLocated + ждем visible (каждый раз передавая локатор,н е не webelement)
- пробуем получить текст из элемента, но передаем не элемент, а снова поиск по findElement(locator) и тут падает
ну да может падать. ретраить надо)
источник

B

Bola in JS for testing
Boris Osipov
ну да может падать. ретраить надо)
О_о
компонента vuejs - вот хочется понять, он перерисовывается и когда
источник

OI

Oleksii Ihnatiuk in JS for testing
на момент "получить текст из элемента" - скорее всего того элемента уже нет
источник

OI

Oleksii Ihnatiuk in JS for testing
он был, ты его нашел, он перерендерился, ты попросил текст
источник

B

Bola in JS for testing
Oleksii Ihnatiuk
на момент "получить текст из элемента" - скорее всего того элемента уже нет
понятно, но нашел, перерендерился, я снова ищу и хочу текст: findElement().getText()
источник

OK

Oleksandr Khotemskyi in JS for testing
Bola
у меня там нет цикла
это старые тесты на webdriverjs - и там сделано очень  просто:
- ждем elementIsLocated + ждем visible (каждый раз передавая локатор,н е не webelement)
- пробуем получить текст из элемента, но передаем не элемент, а снова поиск по findElement(locator) и тут падает
может быть что
driver.findElement(By.css(‘div’)).getText()
——————————————^ и вот тут между поиском элемента и получением текста он уже перерисовался
источник

B

Bola in JS for testing
может
источник

B

Bola in JS for testing
я понимаю, что может
источник

B

Bola in JS for testing
НО как это поймать? фронтендер говорит - ничего там не перерисовывает
источник

OK

Oleksandr Khotemskyi in JS for testing
ну все ) ретрай )
источник

B

Bola in JS for testing
sleep )
источник

BO

Boris Osipov in JS for testing
Bola
понятно, но нашел, перерендерился, я снова ищу и хочу текст: findElement().getText()
ну в хроме посмотри через devtools https://stackoverflow.com/a/33292085/7110310
источник

BO

Boris Osipov in JS for testing
но я не уверен, что поможет.
источник

B

Bola in JS for testing
я через него и смотрел
все довольно быстро происходит
источник

OK

Oleksandr Khotemskyi in JS for testing
Bola
sleep )
потому голые биндинги не очень удобно использовать, для современных SPA приложений нужно много навернуть поверх чтобы спокойно писать тесты
источник