package Ġcom . code bor ne . se len ide . commands Ċ Ċ import Ġcom . code bor ne . se len ide . Command Ċ import Ġcom . code bor ne . se len ide . Sel en ide Element Ċ import Ġcom . code bor ne . se len ide . impl . WebElement Source Ċ import Ġorg . openqa . selenium . NoSuch ElementException Ċ import Ġorg . openqa . selenium . WebElement Ċ import Ġorg . openqa . selenium . support . ui . Quotes Ċ import Ġorg . openqa . selenium . support . ui . Select Ċ Ċ class ĠSelect Option Containing Text Ġ: ĠCommand < Unit > Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecute ( proxy : ĠSelen ide Element , Ġlocator : ĠWeb Element Source , Ġargs : ĠArray < out ĠAny ?> ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= ĠUtil . first Of < String >( args ) ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġlocator . get WebElement () ĊĠĠĠĠĠĠĠ Ġval Ġselect Ġ= ĠSelect ( element ) ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġelement . find Elements ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorg . openqa . selenium . By . xpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ". // option [ contains ( normalize - space (. ), Ġ" Ġ+ ĠQu otes . escape ( text ) Ġ+ Ġ" )] " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( options . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNoSuch ElementException (" Cannot Ġlocate Ġoption Ġcontaining Ġtext : Ġ$ text ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( option Ġin Ġoptions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetSelected ( option ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! select . is Multiple ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun ĠsetSelected ( option : Ġorg . openqa . selenium . WebElement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! option . isSelected ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoption . click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ