
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

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

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
а, ну да. Я понял. Спасибо?

Andrey
28.11.2017
10:04:53

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
Ну, это скорее про организацию локаторов и структуру кода проекта, на мой взгляд, нежели про подход к поиску элементов. Но, возможно я чего-то не понимаю.

Oleksandr?
28.11.2017
10:11:20

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.
Это довольно ситуативный кейс, я бы сказал.

Oleksandr?
28.11.2017
10:13:56

Shoo
28.11.2017
10:14:41

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

Oleksandr?
28.11.2017
10:18:11

Илья
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
И все ради "пути короткие и красивенькие".
дело не в том что короткие и красивенькие, а то что простые локаторы проще дебажить. Вопрос как дебажить - это уже легко решить на уровне биндингов. Те же джавашные биндинги автоматом сохраняют всю цепочку локаторов которая использовалась для поиска конкретного какого-то глубокого элемента

Shoo
28.11.2017
10:22:28

Oleksandr?
28.11.2017
10:22:56

Shoo
28.11.2017
10:23:08

Oleksandr?
28.11.2017
10:23:58

Shoo
28.11.2017
10:25:41

Oleksandr?
28.11.2017
10:26:55

Google

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

Oleksandr?
28.11.2017
10:28:09

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

Oleksandr?
28.11.2017
10:28:57

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

Oleksandr?
28.11.2017
10:32:10

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

Oleksandr?
28.11.2017
10:34:54

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

Sergey
28.11.2017
10:36:08

Shoo
28.11.2017
10:36:39

Oleksandr?
28.11.2017
10:36:49

Sergey
28.11.2017
10:37:05

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
Тогда вы сами выбрали работу, в которой не контролируете рабочие условия. Остается только страдать.

Илья
28.11.2017
10:41:37

Oleksandr?
28.11.2017
10:47:43

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

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

Илья
28.11.2017
10:51:54

Sergey
28.11.2017
10:52:52

Oleksandr?
28.11.2017
10:53:42

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

Sergey
28.11.2017
10:57:35

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

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

Anton
28.11.2017
10:59:56

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

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

Oleksandr?
28.11.2017
11:14:17

plomb3r ▲
28.11.2017
12:21:08
driver = webdriver

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