@@ -24,6 +24,8 @@ const { Browser } = require('../index')
2424
2525let singleSelectValues1 = { 'name' : 'selectomatic' , 'values' : [ 'One' , 'Two' , 'Four' , 'Still learning how to count, apparently' ] } ;
2626let disabledSelect = { 'name' : 'no-select' , 'values' : [ 'Foo' ] } ;
27+ let multiSelectValues1 = { 'name' : 'multi' , 'values' : [ 'Eggs' , 'Ham' , 'Sausages' , 'Onion gravy' ] }
28+ let multiSelectValues2 = { 'name' : 'select_empty_multiple' , 'values' : [ 'select_1' , 'select_2' , 'select_3' , 'select_4' ] }
2729
2830suite (
2931 function ( env ) {
@@ -99,6 +101,57 @@ suite(
99101 let lastSelected = await selectorObject . getFirstSelectedOption ( )
100102 assert . deepEqual ( await firstSelected . getAttribute ( 'value' ) , await lastSelected . getAttribute ( 'value' ) )
101103 } )
104+
105+ it ( 'Should select by multiple index' , async function ( ) {
106+ await driver . get ( Pages . formPage )
107+
108+ let selector = new Select ( driver . findElement ( By . name ( multiSelectValues1 [ 'name' ] ) ) ) ;
109+ await selector . deselectAll ( ) ;
110+
111+ for ( let x in multiSelectValues1 [ 'values' ] ) {
112+ await selector . selectByIndex ( x )
113+ }
114+
115+ let ele = await selector . getAllSelectedOptions ( ) ;
116+
117+ for ( let x in ele ) {
118+ assert . deepEqual ( await ele [ x ] . getText ( ) , multiSelectValues1 [ 'values' ] [ x ] )
119+ }
120+ } )
121+
122+ it ( 'Should select by multiple value' , async function ( ) {
123+ await driver . get ( Pages . formPage )
124+
125+ let selector = new Select ( driver . findElement ( By . name ( multiSelectValues2 [ 'name' ] ) ) ) ;
126+ await selector . deselectAll ( ) ;
127+
128+ for ( let value of multiSelectValues2 [ 'values' ] ) {
129+ await selector . selectByValue ( value )
130+ }
131+
132+ let ele = await selector . getAllSelectedOptions ( ) ;
133+
134+ for ( let x in ele ) {
135+ assert . deepEqual ( await ele [ x ] . getText ( ) , multiSelectValues2 [ 'values' ] [ x ] )
136+ }
137+ } )
138+
139+ it ( 'Should select by multiple text' , async function ( ) {
140+ await driver . get ( Pages . formPage )
141+
142+ let selector = new Select ( driver . findElement ( By . name ( multiSelectValues2 [ 'name' ] ) ) ) ;
143+ await selector . deselectAll ( ) ;
144+
145+ for ( let value of multiSelectValues2 [ 'values' ] ) {
146+ await selector . selectByVisibleText ( value )
147+ }
148+
149+ let ele = await selector . getAllSelectedOptions ( ) ;
150+
151+ for ( let x in ele ) {
152+ assert . deepEqual ( await ele [ x ] . getText ( ) , multiSelectValues2 [ 'values' ] [ x ] )
153+ }
154+ } )
102155 } )
103156 } ,
104157 { browsers : [ 'firefox' , 'chrome' ] }
0 commit comments