12. 12
Click
1. В центр элемента
2. Viewport содержит элемент
• MAY: scrollIntoView
3. Должен быть видим*
WebDriver W3C Clicking
http://www.w3.org/TR/webdriver/#clicking
22. 22
Дождаться элемента
die.mlctywi()
rvripiil_at5
0 .s a t = t m . i e )
1 tr
ietm(
0 .w i e n t r s l a d t m . i e ) < s a t + t m o t
2 hl o eut n ietm(
tr
ieu:
0.
3
0.
4
0.
5
0.
6
ty
r:
rsl =die.ideeetb_d"d)
eut
rvrfn_lmn_yi(i"
ecp:
xet
ps
as
28. 28
Поднимаем нужный маркер
0 .s r p = " r u e t [ ] s y e z n e + ;
1 cit
agmns0.tl.Idx+"
0 .d i e . x c t _ c i t s r p , m r e )
2 rvreeuesrp(cit akr
0 .m r e . l c (
3 akrcik)
29. 29
Итог
Расширяем свои возможности засчет:
1. Продуманных обработок ошибок
2. Инъекции JS
Проблема
Как не умереть от поддержки тестов с этим всем?
30. 30
О чем будет
• Откуда проблемы кроссбраузерности?
• Примеры проблем кроссбраузерности
• Решение - фреймворк
• Практические рекомендации
39. 39
WebElement inheritance
0 .c a s T s W b l m n ( e E e e t :
1 ls eteEeetWblmn)
0.
2
df_ii_(ef die
e _ n t _ s l , r v r,w b e e e t)
e_lmn :
0.
3
sl._it_udt(e_lmn._it_
ef_dc_.paewbeeet_dc_)
0.
4
sl.rvr=die
efdie
rvr
41. 41
find_element(s) override:
with onload solution
0 .d f f n _ l m n s l , * r s * k a g )
1 e
i d e e e t( e f a g , * w r s :
0.
2
0.
3
0.
4
0.
5
0.
6
0.
8
7
ty
r:
wi_o_lmn_per*rs *kag)
atfreeetapa(ag, *wrs
eeet=sl.rvrfn_lmn(ag,*kag)
lmn
efdie.ideeet*rs *wrs
ecp Tmotxeto:
xet ieuEcpin
rieEeetoFudkag[vle] kag[b")
as lmnNton(wrs"au", wrs"y]
rtr TsWblmn(efdie,eeet
eun eteEeetsl.rvr lmn)
43. 43
TextWebElement extension
0 .c a s T s W b l m n ( e E e e t :
1 ls eteEeetWblmn)
0.
2
**
*
0.
3
0.
4
0.
5
dffn_lmn_yszl(ef szl_eetr:
e ideeetb_izesl, izeslco)
ps
as
0.
6
0.
7
0.
8
dfjvsrp_lc(ef:
e aacitciksl)
ps
as
56. 56
Изолируем взаимодействие с
локаторами
0 .c a s M p T s W b l m n )
1 ls a(eteEeet:
0.
2
slcos={ef:'mp}
eetr
sl' #a'
0.
3
0 .c a s M r e ( e t e E e e t :
4 ls akrTsWblmn)
0.
5
slcos={sl' 'mre'
eetr
'ef: .akr}
58. 58
markers()
0 .c a s M p T s W b l m n )
1 ls a(eteEeet:
0 .. .
2 .
0.
3
dfgtmressl)
e e_akr(ef:
0.
4
slco = Mre.eetr[sl'
eetr
akrslcos'ef]
0.
5
eeet =sl.##прнс
lmns
ef # еео
0.
6
0.
7
fn_lmnsb_s_eetrslco)
ideeet_ycsslco(eetr
rtr [akree)free i eeet]
eun Mre(lm o lm n lmns
59. 59
Итог
Получили удобные* методы доступа к карте и маркерам
*Удобно для нас, это:
1. Работа в контексте приложения,
2. Легче контролировать изменения локаторов.
62. 62
Определяем клик в маркер
0 .c a s M r e ( e t e E e e t :
1 ls akrTsWblmn)
0.
2
0.
3
df_rgnlciksl,*rs *kag)
e oiia_lc(ef ag, *wrs:
sprMre,sl)cik*rs *kag)
ue(akr ef.lc(ag, *wrs
0.
4
0.
5
dfciksl)
e lc(ef:
0.
6
sl.rn_ofot)
efbigt_rn(
0.
7
sl.oiia_lc(
ef_rgnlcik)
66. 66
Test Case
0 ." "
1 "
0 .- Д л е п и к
2
еам ос
0 .- Н к р е к и а м в м р е
3
а ат лке
акр
0 .- Н з а и ф р ы в к л а т и е в р з л т т х п и к
4
авне им
олуе щм
еуьаа оса
0.
5
0 .О : Н з а и ф р ы в к л у е е т в р з л т т х п и к
6 Р авне им
олт сь
еуьаа оса
0 ." "
7 "
67. 67
Test
0 .d f t s _ i m a l u _ i l _ n f r c r s t t e ( e f :
1 e etfrclotttei_imad_ilssl)
0.
2
sl.aesacBrctlga.erh'ио)
efpg.erha.aaoTbsac(пв'
0.
3
sl.aempmres0.lc(
efpg.a.akr[]cik)
0.
4
tte=sl.aempfrClottte
il
efpg.a.imalu.il
0.
5
sl.setrettei sl.aesacRsls
efasrTu(il n efpg.erheut)