Size: a a a

2019 November 12

VG

Vitalii Grygoruk in JS for testing
Развели тут срач
источник

AB

Alexei Barantsev in JS for testing
мы вроде держимся в рамках приличия...
источник

BO

Boris Osipov in JS for testing
я вообще слабо понимаю в чем тут спор и зачем это ишью в wdio( врятли его кто-то станет делать, т.к. изначально идея была делать так как есть)

написать поверх wdio то что тебе нужно -
1) 1d (реализовать базовые штуки)
2) 4d размазанных на 2-3 недели - допилить что тебе нужно.
3) Profit.
источник

BO

Boris Osipov in JS for testing
проворачивал такое на проекте, это мои затраты времени. может вам будет чуть дольше, если нет понимания как написать...
источник

AP

Alexander Popov in JS for testing
Кейс - есть елемент А, который висит на странице постоянно, и элемент В, который после клика добавляет в страницу элемент А' (в доме до элемента А). Я смотрю на свою страницу, пишу декларацию элемента В и А' (которых по моему локатору 2 на странице, но я чувствую себя спокойно потому что знаю что возвращается первый при поиске одного), и потом где то кликаю сначала на В, а потом проверяю атрибут в А', и вижу непонятную абсолютно ошибку, что в моем элементе с правильным локатором атрибут не такой как я жду и вижу на своей странице открытой, из за того что элемент нашёлся не тогда когда он мне нужен а где то раньше... С лейзи такого бы не случилось, потому что он бы начал себя искать после клика по В. Или даже проще, с таким подходом при поиске на этапе декларации, приходится декларировать не элементы а локаторы, или поисковые методы, что не так удобно как сами готовые цепочки элементов прям в конструкторе
источник

AP

Alexander Popov in JS for testing
Лейзи поиск тоже когда начинается проверяет все элементы цепочки на присутствие, ожидая этого на ходу
источник

AB

Alexei Barantsev in JS for testing
а тебе нужен A или A'?
источник

AP

Alexander Popov in JS for testing
А'
источник

AB

Alexei Barantsev in JS for testing
а если тебе нужен А?
источник

AP

Alexander Popov in JS for testing
Тогда ты после клика в браузере в дебаге найдёшь его по индексу сразу
источник

AP

Alexander Popov in JS for testing
Потому что ты имеешь после клика на В ровно такую ситуацию как в тесте
источник

AB

Alexei Barantsev in JS for testing
то есть ты сначала декларировал, что тебе нужен А (в этот момент он на странице один, и когда ты писал код, ты это проверил). потом кликнул на B — он воткнул перед A элемент A'. дальше ты пытаешься что-то сделать с ранее декларированным A — выполняется ленивый поиск, находит A' и совершает действие с ним — упс
источник

AB

Alexei Barantsev in JS for testing
(а если бы поиск был не ленивый, действие бы совершилось с элементом A)
источник

AB

Alexei Barantsev in JS for testing
(и в этом примере никаких переискиваний нет вообще)
источник

AP

Alexander Popov in JS for testing
Alexei Barantsev
то есть ты сначала декларировал, что тебе нужен А (в этот момент он на странице один, и когда ты писал код, ты это проверил). потом кликнул на B — он воткнул перед A элемент A'. дальше ты пытаешься что-то сделать с ранее декларированным A — выполняется ленивый поиск, находит A' и совершает действие с ним — упс
Шото я не то придумал да, они ведут себя одинаково в этой ситуации... Разница будет только если элементов А вообще нет, тогда в тесте их придётся строго искать после клика по В, а лейзи можно было объявить ранее
источник

AP

Alexander Popov in JS for testing
Снимаю наезд
источник

AB

Alexei Barantsev in JS for testing
мораль: надо тупо помнить постоянно, ленивый у вас инструмент или жадный, и писать код с учётом этого знания
источник

AP

Alexander Popov in JS for testing
Alexei Barantsev
мораль: надо тупо помнить постоянно, ленивый у вас инструмент или жадный, и писать код с учётом этого знания
Ну да, это актуально для всех библиотек
источник

VG

Vitalii Grygoruk in JS for testing
@barancev если элемент ленивый - то у тебя больше свободы в стиле написании тестов и организации кода (ну да - надо делать явные проверки что элемент есть иногда), если жадный - то тут нужно как раз помнить больше
источник

AB

Alexei Barantsev in JS for testing
нет, если жадный — помнить надо меньше
источник