package Ġio . github . tm creative 1 . play w right . remote . locator Ċ Ċ import Ġio . github . tm creative 1 . play w right . remote . base . Base Test Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . streams . toList Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNotNull Ċ Ċ class ĠTest Locator Element Handle Ġ: ĠBaseTest () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġto Ġquery Ġexisting Ġelement `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpage . navigate ("${ http Server . prefix With Domain }/ playground . html ") ĊĠĠĠĠĠĠĠ Ġpage . setContent ("< html >< body >< div Ġclass =' second '>< div Ġclass =' inner '> A </ div ></ div ></ body ></ html >") ĊĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= Ġpage . locator (" html ") ĊĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= Ġhtml . locator (". second ") ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġsecond . locator (". inner ") ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġpage . evaluate (" e Ġ=> Ġe . textContent ", Ġinner . element Handle ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" A ", Ġcontent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġto Ġquery Ġexisting Ġelements `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpage . setContent ("< html >< body >< div > A </ div >< br />< div > B </ div ></ body ></ html >") ĊĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= Ġpage . locator (" html ") ĊĠĠĠĠĠĠĠ Ġval Ġelements Ġ= Ġhtml . locator (" div "). element Handles () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( elements ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġelements . size ) ĊĠĠĠĠĠĠĠ Ġval Ġtexts Ġ= Ġelements . stream (). map Ġ{ Ġpage . evaluate (" e Ġ=> Ġe . textContent ", Ġit ) Ġ}. toList () ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" A ", Ġ" B "), Ġtexts ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġto Ġreturn Ġempty Ġarray Ġof Ġnon Ġexisting Ġelements `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpage . setContent ("< html >< body >< span > A </ span >< br />< span > B </ span ></ body ></ html >") ĊĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= Ġpage . locator (" html ") ĊĠĠĠĠĠĠĠ Ġval Ġelements Ġ= Ġhtml . locator (" div "). element Handles () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( elements ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġelements . size ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġto Ġfind Ġelement Ġby Ġxpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpage . navigate ("${ http Server . prefix With Domain }/ playground . html ") ĊĠĠĠĠĠĠĠ Ġpage . setContent ("< html >< body >< div Ġclass =' second '>< div Ġclass =' inner '> A </ div ></ div ></ body ></ html >") ĊĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= Ġpage . locator (" html ") ĊĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= Ġhtml . locator (" xpath = ./ body / div [ contains (@ class , Ġ' second ')] ") ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġsecond . locator (" xpath = ./ div [ contains (@ class , Ġ' inner ')] ") ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġpage . evaluate (" e Ġ=> Ġe . textContent ", Ġinner . element Handle ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" A ", Ġcontent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġto Ġreturn Ġnull Ġfor Ġnon Ġexisting Ġelement Ġby Ġxpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpage . setContent ("< html >< body >< div Ġclass =' second '>< div Ġclass =' inner '> B </ div ></ div ></ body ></ html >") ĊĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= Ġpage . locator (" html ") ĊĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= Ġhtml . locator (" xpath =/ div [ contains (@ class , Ġ' third ')] "). element Handles () ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf (), Ġsecond ) ĊĠĠĠ Ġ} Ċ }