@qa_ru

Страница 774 из 1080
Oleksandr?
28.11.2017
10:00:53
Andrey
28.11.2017
10:01:07
тем более очередность элементом может поменяться

Oleh
28.11.2017
10:01:50
id нету, и класов по названию похожих много

Oleksandr?
28.11.2017
10:02:32
id нету, и класов по названию похожих много
надо верстку смотреть, так никто не скажет хороший локатор или нет

Google
Shoo
28.11.2017
10:02:35
Andrey
28.11.2017
10:02:59
А чем лучше-то?
тем более очередность элементом может поменяться

и уже div[2], к примеру, не проканает

Shoo
28.11.2017
10:03:54
Очередность элементов - это изменение в верстке. С таким же успехом локатор может поменяться на другой. Любые изменения в верстке могут сломать локатор, факт.

Andrey
28.11.2017
10:04:15
id нету, и класов по названию похожих много
я в таких случаях делал несколько составляющих типа class + текст

Oleksandr?
28.11.2017
10:04:21
вообще искать каждый раз в глобальном контексте - нестабильно как по мне

Andrey
28.11.2017
10:04:23
не знаю, как другие

Andrey
28.11.2017
10:04:33
зато данный локатор будет почти железно находить только 1 элемент

Oleksandr?
28.11.2017
10:04:37
я обычно нахожу блоки, а потом уже ищу внутри них

Oleh
28.11.2017
10:04:41
а, ну да. Я понял. Спасибо?

Shoo
28.11.2017
10:05:11
я обычно нахожу блоки, а потом уже ищу внутри них
А в чем глобальная разница, если поиск блока у вас всё равно проходится по всему дому?

Oleksandr?
28.11.2017
10:05:37
типа - let loginForm = $('.loginform') await loginForm.$('.username').sendKeys(user) await loginForm.$('.password').sendKeys(password)

Google
Oleksandr?
28.11.2017
10:06:26
А в чем глобальная разница, если поиск блока у вас всё равно проходится по всему дому?
ну тут прикол в том как сами верстальщики верстают, они обычно тоже обявляют блоки, компонеты всякие

удобно находить такие инкапсулированные блоки которые в верстке существуют

я даже как то выступал с этой идеей. Это абсолютно не новая идея, странно что в автотестировании ее так мало используют

https://www.youtube.com/watch?v=aSmTwARoPJA&list=PLEUkJQfJdxsTg4al8YrSVp4BxC4ds9biH&index=6

Shoo
28.11.2017
10:11:07
Ну, это скорее про организацию локаторов и структуру кода проекта, на мой взгляд, нежели про подход к поиску элементов. Но, возможно я чего-то не понимаю.

Shoo
28.11.2017
10:11:28
Нет, не связано. :)

Ну, т.е. связанность зависит от того, как вы это реализовываете.

Oleksandr?
28.11.2017
10:12:02
Нет, не связано. :)
очень даже, локаторы в этом подходе получаются очень короткими, и поддерживать проще

Илья
28.11.2017
10:13:20
очень даже, локаторы в этом подходе получаются очень короткими, и поддерживать проще
Чем хороши короткие? И почему короткие локаторы поддерживать проще?

Shoo
28.11.2017
10:13:38
У тебя в итоге всё равно получается конкатенация локаторов (локатор блока + локатор элемента). Я не вижу особого плюса в "коротких" локаторах, т.к. они всё равно скрыты под неймингом. Вероятность изменения оного меняется только тогда, когда у вас часто перетаскивают по структуре страницы целые блоки UI.

Это довольно ситуативный кейс, я бы сказал.

Shoo
28.11.2017
10:14:41
конкатенация выполняется на уровне вебдрайвер API, я не клею ничего через +
Да какая разница на каком уровне она выполняется, если принцип работы остается тем же?

Oleksandr?
28.11.2017
10:14:44
и там тоже не через + а через указание контекста

Shoo
28.11.2017
10:14:49
Вы что там, что сям оперируете абсолютными путями.

Oleksandr?
28.11.2017
10:15:47
Да какая разница на каком уровне она выполняется, если принцип работы остается тем же?
нет, это уже особенности контекста в вебдрайвер, и нас они не волнуют

Shoo
28.11.2017
10:15:49
Относительные пути имеют обратное свойство - при некорректном контексте конкатенация может выдать валидный элемент, который не является целью тестирования.

Google
Илья
28.11.2017
10:16:09
дебажить же проще. В длинном локаторе долго искать что конкретно поменялось
У тебя не найден либо блок либо элемент. при длинных не найден элемент. и в том и том случае тебе лезть в браузер и смотреть куда же он уехал

Илья
28.11.2017
10:18:39
Oleksandr?
28.11.2017
10:18:46
твой - MyNiceElement == WebElement

да, я для этого и написал библиотеку на js

но впринципе ее можно легко реализовать и на java, те же HTMLelements работают в этом же направлении

Shoo
28.11.2017
10:19:40
В общем, подход, конечно, вполне жизнеспособен, но рекомендовать его как silver bullet - довольно спорное решение, потому что реальных плюсов оно ... может и не давать вообще. А вот лишний геморрой при дебаггинге может добавлять.

Oleksandr?
28.11.2017
10:19:47
но мне не нравится использовать анотации, я за ленивые элементы

Shoo
28.11.2017
10:19:51
И все ради "пути короткие и красивенькие".

Илья
28.11.2017
10:21:05
Столько проблем с автоматами, что радеть за дебаг при смене путей бессмысленно имхо

Oleksandr?
28.11.2017
10:21:09
И все ради "пути короткие и красивенькие".
дело не в том что короткие и красивенькие, а то что простые локаторы проще дебажить. Вопрос как дебажить - это уже легко решить на уровне биндингов. Те же джавашные биндинги автоматом сохраняют всю цепочку локаторов которая использовалась для поиска конкретного какого-то глубокого элемента

Oleksandr?
28.11.2017
10:22:56
Возникает только один вопрос: зачем?
Я же целую лекцию записал специально :)

Возникает только один вопрос: зачем?
чтобы ответить на вопрос зачем

Oleksandr?
28.11.2017
10:23:58
Я так и не увидел аргументов, почему короткие пути проще дебажить, кроме как "проще найти какая часть xpath изменилась", как будто вы вручную два xpath сравниваете.
потому что вы работаете в конкретном контексте, а не по всей странице. Если у вас в компоненте что-то изменилось, вам не нужно дебажить локатор по всей странице, а достаточно ограничить поиск конкретным компонентом

Shoo
28.11.2017
10:25:41
потому что вы работаете в конкретном контексте, а не по всей странице. Если у вас в компоненте что-то изменилось, вам не нужно дебажить локатор по всей странице, а достаточно ограничить поиск конкретным компонентом
А если у вас лежит длинный локатор то вы, надо полагать, понятия не имеете в каком блоке данный локатор используется, и будете перебирать методом свободного поиска все элементы страницы, пока не найдете нужный?

Google
Shoo
28.11.2017
10:27:41
Я ни откуда их не выношу, я точно так же могу их структурировать по компонентам, используя при этом абсолютные пути, вместо скрытого под капотом контекста.

Shoo
28.11.2017
10:28:34
Вот, это уже больше похоже на аргумент.

Oleksandr?
28.11.2017
10:28:57
Вот, это уже больше похоже на аргумент.
вообще мне нравится ход ваших мыслей

Вот, это уже больше похоже на аргумент.
вот тут больше примеров кода, правда на TypeScript - я был бы благодарен за фидбек в личку - https://github.com/Xotabu4/protractor-element-extend

Shoo
28.11.2017
10:30:09
Здесь зависит от: если мы гарантируем, что поведение компонента на всех страницах идентично независимо от контекста (что может быть совсем не так), то данный подход может принести реальные плоды. Но, на мой взгляд, проще использовать id в таких случаях, чем добавлять в тесты контекст, который нужно всегда учитывать.

Shoo
28.11.2017
10:34:19
Я бы предпочел независимую от локаторов логику вынести в отдельные классы, а локаторы заменить на id, вместо xpath.

Но, на вкус и цвет, вероятно.

Shoo
28.11.2017
10:35:42
Вы так говорите, как будто это требует каких-то нечеловеческих усилий, несоизмеримых с обработкой контекста в тестах. :)

Shoo
28.11.2017
10:36:39
Иногда это требует согласование и 4 подписи.
Тогда самое время отвлечься от автотестов и заняться QA, что бы сделать систему пригодной для тестирования.

Oleksandr?
28.11.2017
10:36:49
Я бы предпочел независимую от локаторов логику вынести в отдельные классы, а локаторы заменить на id, вместо xpath.
Я увидел этот подход очень крутым когда работал с чем то по типу страницы результатов. У меня есть class SearchResults<SearchResult> extends BaseArrayFragment {} и я могу делать прекрасные вещи - new SearchResults().getResultWithLowestPrice().openDetails()

Oleksandr?
28.11.2017
10:37:34
.getResultWithLowestPrice() Возвращает мне уже типизированный елемент SearchResult - у которого уже есть метод - откройся

Shoo
28.11.2017
10:37:41
Ага. И тебе, разумеется, дали на это права.
Это сильно зависит от того, на какую работы вы устраивались. У меня таких проблем обычно не возникало.

Sergey
28.11.2017
10:37:52
Везет вам.

Shoo
28.11.2017
10:38:35
Везет вам.
Причем тут везение-то? Если одна из ваших должностных обязанностей - отлаживать QA процессы, то права на это у вас есть by default.

Sergey
28.11.2017
10:39:09
А если не обязанность?

Google
Sergey
28.11.2017
10:39:36
Или "да, конечно. надо 4 подписи и согласовывать все".

Oleksandr?
28.11.2017
10:39:38
Кстати такой подход с некоторыми переименованиями еще и очень понятен фронтендерам, потому что они делают структуру своего фронтенд кода очень похоже. Можно даже переиспользовать те же имена классов что они дают в своем коде.

Shoo
28.11.2017
10:39:39
Тогда вы сами выбрали работу, в которой не контролируете рабочие условия. Остается только страдать.

Oleksandr?
28.11.2017
10:47:43
А ещё можно генерить "HTMLElements" для автотестов на основе кода приложения
потенциально. Но всеравно прийдется методы писать самому )

А ещё можно генерить "HTMLElements" для автотестов на основе кода приложения
хотя может некоторые методы можно и генерить... я думал про это, но нет времени занятся вплотную

Lena
28.11.2017
10:48:54
Ребята, привет! А есть среди вас те, кто занимались нагрузочным тестированием?))

?
28.11.2017
10:50:32
какой бестактный вопрос -)

Илья
28.11.2017
10:51:54
хотя может некоторые методы можно и генерить... я думал про это, но нет времени занятся вплотную
Но тут нужен тогда порядок кода хороший. На выходе иметь типизированные контролы

Oleksandr?
28.11.2017
10:53:42
Но тут нужен тогда порядок кода хороший. На выходе иметь типизированные контролы
не хочешь помочь мне? У меня есть пару идей на этот счет. Могу в личку обьяснить

Lena
28.11.2017
10:56:45
Прошу прощения за бестактность) но я ищу тех, кто работал с HP LoadRunner и с JMeter, разрабатывали нагрузочные скрипты и т.п.

Sergey
28.11.2017
10:57:35
Прошу прощения за бестактность) но я ищу тех, кто работал с HP LoadRunner и с JMeter, разрабатывали нагрузочные скрипты и т.п.
Елена, вопрос-то какой?) Есть ли люди такие? Да, есть. Вас устроит такой ответ?) Или же нужно что-то более конкретное?)

Lena
28.11.2017
10:58:32
Если есть, то это ж замечательно) а кто-нибудь работу ищет из нагрузочников??

Sergey
28.11.2017
10:59:08
яснопонятно

Anton
28.11.2017
10:59:56
Если есть, то это ж замечательно) а кто-нибудь работу ищет из нагрузочников??
там спросите: @qa_jobs - незабудьте прочесть припиненное сообщение, а то опять зафлудят...

Lena
28.11.2017
11:01:04
Спасибо)

Андрей
28.11.2017
11:07:43
Всем привет! Ребята, как при помощи WebDriver сбросить кэш в браузере?

Андрей
28.11.2017
12:22:31
Угу, спасибо, счас буду пробовать!)

Страница 774 из 1080