Size: a a a

2019 November 12

AP

Alexander Popov in JS for testing
Alexei Barantsev
переискивание может быть вверх по цепочке и без ленивости (протух элемент, в котором надо искать — сначала переискиваем его, а потом ищем в нем)
А, ну да, я не подумал об этом. Но зачем вообще нужны элементы какие то в промежутке, если мы все равно если сё его ищем заново? Зачем вообще что то искать до того как мы хотим с ним взаимодействовать?
источник

VG

Vitalii Grygoruk in JS for testing
я скажу так - текущее поведение WDIO - это “Design limitation”
источник

AB

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

VG

Vitalii Grygoruk in JS for testing
на самом деле оно нифига не проверяет в WDIO.
const a = $(‘.notexisting’) не свалит тест
источник

VG

Vitalii Grygoruk in JS for testing
оно тебе вернет обьект Element в котором внутри не будет элемента 🙂
источник

VG

Vitalii Grygoruk in JS for testing
а будет сообщение об ошибке что элемент не найден
источник

VG

Vitalii Grygoruk in JS for testing
а когда ты попробуешь на нем что то вызвать - то WDIO попытается его переискать и если найдет - то выполнит действие. А если не найдет - то свалится с ошибкой Not found
источник

AP

Alexander Popov in JS for testing
Alexei Barantsev
затем, чтобы проверять наличие элементов. просто проверять наличие. хотя формально это можно считать "примитивным действием", я об этом выше как раз писал в скобочках
Можно случайно найти не то по идее с таким подходом
источник

AB

Alexei Barantsev in JS for testing
и при ленивом тоже можно случайно найти "не то"
источник

AB

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

AB

Alexei Barantsev in JS for testing
это ситуация симметричная
источник

OI

Oleksii Ihnatiuk in JS for testing
Vitalii Grygoruk
на самом деле оно нифига не проверяет в WDIO.
const a = $(‘.notexisting’) не свалит тест
это срань :)
источник

OI

Oleksii Ihnatiuk in JS for testing
Vitalii Grygoruk
и вот этот вот стыд c кастомными мачерами для чая

expect(() => { $(‘foo’) }).to.have.text(“foo”)

было бы лениво - можно было бы писать вот так
expect($(‘foo’)).to.have.text(“foo”)
а вот это мне нравится - хоть поймешь как это работает, а не будешь охереветь, а что так не везде работает
источник

AP

Alexander Popov in JS for testing
Alexei Barantsev
хотел кликнуть по одному элементу  — который был в начале сценария, где находится декларация —  а к моменту клика по этому локатору уже находится что-то совсем другое
Минуточку...
источник

VG

Vitalii Grygoruk in JS for testing
Oleksii Ihnatiuk
это срань :)
Ты хочешь сказать я не прав в этом?
источник

OI

Oleksii Ihnatiuk in JS for testing
Хочу сказать, что ты прав. Я когда это выводил в консоль лог - плакал :)
источник

OI

Oleksii Ihnatiuk in JS for testing
но это же сделано наверное из-за пресловутого удобства: сейчас undefined по-тихому, а потом если элемент не элемент, тогда нужно попробовать найти его снова.
источник

OI

Oleksii Ihnatiuk in JS for testing
решения прям архи понятные и грамотные бьээе
источник

VG

Vitalii Grygoruk in JS for testing
Ну это ж была попытка сделать ленивые элементы малой кровью у кристиана
источник

VG

Vitalii Grygoruk in JS for testing
Сейчас Борис всем вломит :)
источник