package Ġj ces 1 2 0 9 . vu . page . boards . view Ċ Ċ import Ġj ces 1 2 0 9 . vu . page . boards . configure . Configure Board Ċ import Ġj ces 1 2 0 9 . vu . wait Ċ import Ġorg . openqa . selenium . By Ċ import Ġorg . openqa . selenium . WebDriver Ċ import Ġorg . openqa . selenium . support . ui . Expected Conditions Ċ import Ġjava . net . URI Ċ Ċ abstract Ġclass ĠBoard Page ( ĊĠĠĠ Ġprotected Ġval Ġdriver : ĠWebDriver , ĊĠĠĠ Ġpublic Ġval Ġuri : ĠURI Ċ ) Ġ{ ĊĠĠĠ Ġopen Ġval Ġissue Selector Ġ= ĠBy . className (" gh x - issue ") ĊĊĠĠĠ Ġfun Ġgo To Board (): ĠBoard Page Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver . navigate (). to ( uri . to URL ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun ĠgetType Label (): ĠString ĊĊĠĠĠ Ġabstract Ġfun ĠwaitFor Board Page To Load (): ĠBoard Content ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBoard Ġmust Ġhave Ġissues ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġpreview Issue (): ĠBoard Page ĊĠĠĠ Ġabstract Ġfun Ġclose Preview Issue () ĊĊĠĠĠ Ġpublic Ġclass ĠGeneral Board Content ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdriver : ĠWebDriver , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġissue Selector : ĠBy ĊĠĠĠ Ġ) Ġ: ĠBoard Content Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlazy Issue Keys : ĠCollection < String > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdriver ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Elements ( issue Selector ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . getAttribute (" data - issue - key ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Issue Count (): ĠInt Ġ= Ġlazy Issue Keys . size ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Issue Keys (): ĠCollection < String > Ġ= Ġlazy Issue Keys ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġconfigure (): ĠConfigure Board ĊĊĠĠĠ Ġfun Ġconfigure Board (): ĠConfigure Board Ġ{ ĊĠĠĠĠĠĠĠ Ġdriver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. wait ( Expected Conditions . element ToBe Clickable ( By . id (" board - tools - section - button "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. click () ĊĊĠĠĠĠĠĠĠ Ġdriver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. wait ( Expected Conditions . element ToBe Clickable ( By . className (" js - view - action - configure "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. click () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġconfigure () ĊĠĠĠ Ġ} Ċ } Ċ