package Ġde . p 7 s 1 . qa . se ven fac ette . driver Ċ Ċ import Ġde . p 7 s 1 . qa . se ven fac ette . core . Js Executor Ċ import Ġde . p 7 s 1 . qa . se ven fac ette . core . Page Class Ċ import Ġde . p 7 s 1 . qa . se ven fac ette . core . Search Context Ċ import Ġde . p 7 s 1 . qa . se ven fac ette . core . Select Ċ import Ġde . p 7 s 1 . qa . se ven fac ette . extension . select Ċ import Ġorg . openqa . selenium . By Ċ import Ġjava . lang . RuntimeException ĊĊ Ċ abstract Ġclass ĠPage ( val Ġbrowser : ĠBrowser ) Ġ: ĠSearch Context Ġby Ġbrowser Ġ{ ĊĊĠĠĠ Ġopen Ġval Ġurl : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġopen Ġval Ġis At : ĠBrowser . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ} ĊĠĠĠ Ġabstract Ġfun Ġis At Page (): ĠBoolean ĊĊĠĠĠ Ġfun Ġrefresh Page () Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowser . refresh () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrefresh Page With Confirmation () Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowser . refresh () ĊĠĠĠĠĠĠĠ Ġbrowser . alert . accept () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnavigate Back () Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowser . back () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġpause Execution ( milli Sec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( milli Sec . to Long ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLogging ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" An Ġerror Ġoc urred Ġwhile Ġsleep ing : ĠError [ {} ]", Ġe . cause ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġrefresh Page Until Element Is Visible ( refresh Times : ĠInt , Ġlocator : ĠBy ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġshould Try Again Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġvar Ġrepeat Times Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( should Try Again Ġ&& Ġrepeat Times Ġ< Ġrefresh Times ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Try Again Ġ= Ġbrowser . all ( locator ). isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( should Try Again ) Ġ{ Ġ// Ġdidn ` t Ġfound Ġyet Ġ-> Ġrefresh ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlogging .... ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Page () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat Times ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue Ġ// Ġfound Ġdon ` t Ġrepeat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcurrent Url : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbrowser . current Url ĊĊĠĠĠ Ġfun Ġselect ( css Locator : ĠString ): ĠSelect Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbrowser . select ( css Locator ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect ( locator : ĠBy ): ĠSelect Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbrowser . select ( locator ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠPage > Ġpage ( page Class : ĠPage Class < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbrowser . at ( page Class ) ĊĠĠĠ Ġ} Ċ } Ċ