package Ġc adm ium Ċ Ċ import Ġorg . openqa . selenium . WebDriver Ċ import Ġorg . openqa . selenium . support . ui . Expected Condition Ċ import Ġorg . openqa . selenium . support . ui . WebDriver Wait Ċ import Ġkotlin . time . Duration Ċ import Ġkotlin . time . Experimental Time ĊĊ Ċ /** Ċ Ġ* ĠWait Ġfor Ġa Ġfixed Ġamount Ġof Ġtime Ċ Ġ*/ Ċ @ Experimental Time Ċ fun ĠwaitFor ( time : ĠDuration ) Ġ{ ĊĠĠĠ ĠThread . sleep ( time . in Milliseconds . to Long ()) Ċ } Ċ Ċ /** Ċ Ġ* ĠCommon ĠInterface Ġproviding Ġmethods Ġto Ġwait Ġfor Ġdifferent ĠConditions Ċ Ġ* Ċ Ġ* Ġ@ sample Ġc adm ium _ test . Test Wait er . test Wait Dsl Ċ Ġ*/ Ċ interface ĠWait er Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWait Ġuntil Ġa Ġgiven Ġcondition Ġis Ġful filled Ġor Ġtime Out Ġis Ġreached . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcondition Ġfunction Ġevaluated Ġto Ġsee Ġof Ġwait Ġcondition Ġis Ġful filled . ĊĠĠĠĠ Ġ* Ġwait Until Ġwill Ġreturn Ġwhen Ġ[ condition ] Ġreturns Ġanything Ġexcept Ġnull Ġor Ġfalse . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġresult Ġof Ġcondition Ġclosure Ġafter Ġcondition Ġis Ġful filled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Use Experimental ( Experimental Time :: class ) ĊĠĠĠ Ġfun Ġ< T > Ġwait Until ( time Out : ĠDuration , Ġcondition : ĠWait er . () Ġ-> ĠT ): ĠT ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWait Ġuntil Ġa Ġgiven Ġcondition Ġis Ġful filled ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcondition Ġfunction Ġevaluated Ġto Ġsee Ġof Ġwait Ġcondition Ġis Ġful filled . ĊĠĠĠĠ Ġ* Ġwait Until Ġwill Ġreturn Ġwhen Ġ[ condition ] Ġreturns Ġanything Ġexcept Ġnull Ġor Ġfalse . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġresult Ġof Ġcondition Ġclosure Ġafter Ġcondition Ġis Ġful filled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġwait Until ( condition : ĠWait er . () Ġ-> ĠT ): ĠT ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOver load Ġof Ġwait Until Ġfor Ġselenium . Expected Condition ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġorg . openqa . selenium . support . ui . Expected Conditions ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġwait Until ( condition : ĠExpected Condition < T >): ĠT Ċ } Ċ Ċ /** Ċ Ġ* ĠDefault ĠImplementation Ġbased Ġon Ġc adm ium ĠBrowser Ġclass Ġand Ġselenium Ġwait Ġapi . Ċ Ġ* Ċ Ġ* ĠUses Ġselenium ĠWait Ġapi Ġunder Ġthe Ġh ood . Ċ Ġ* ĠBy Ġdefault ĠNoSuch Element Exceptions Ġand Ġnested ĠTimeout Exceptions Ġare Ġignored Ġto Ġallow Ġwaiting Ġfor Ġexistence Ġof ĠWeb Elements . Ċ Ġ* ĠI g no res Ġthe ĠTimeout Exception Ġsince Ġthat Ġmight Ġthrown Ġby Ġvisibility Ġchecks Ġinside Ġthe Ġcondition Ġactions . Ċ Ġ* Ġ@ see Ġorg . openqa . selenium . support . ui . Wait Ċ Ġ*/ Ċ class ĠDefault Wait er Impl ( b : ĠBrowser ) Ġ: ĠWait er Ġ{ ĊĊĠĠĠ Ġprivate Ġfun ĠWebDriver Wait . ignore List () Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ. ign oring ( org . openqa . selenium . NoSuch ElementException :: class . java ) ĊĠĠĠĠĠĠĠ Ġ. ign oring ( org . openqa . selenium . TimeoutException :: class . java ) ĊĊĠĠĠ Ġprivate Ġval Ġwait : ĠWebDriver Wait Ġ= ĊĠĠĠĠĠĠĠ Ġb . default Wait . ignore List () Ġas ĠWebDriver Wait ĊĠĠĠ Ġprivate Ġval Ġdriver : ĠWebDriver Ġ= Ġb . driver ĊĊĠĠĠ Ġ@ Use Experimental ( Experimental Time :: class ) ĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġwait Until ( time Out : ĠDuration , Ġcondition : ĠWait er . () Ġ-> ĠT ): ĠT Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWebDriver Wait ( driver , Ġtime Out . in Seconds . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ignore List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. until Ġ{ this . condition ()} !! ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġwait Until ( condition : ĠWait er . () Ġ-> ĠT ): ĠT Ġ= ĊĠĠĠĠĠĠĠ Ġwait . until Ġ{ Ġthis . condition () Ġ} !! ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġwait Until ( condition : ĠExpected Condition < T >) Ġ= ĊĠĠĠĠĠĠĠ Ġwait . until ( condition ) !! Ċ }