Skip to content

Commit 59d7bae

Browse files
committed
[JS] Adds select by multiple(index,value, text) tests
1 parent 9955c13 commit 59d7bae

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

javascript/node/selenium-webdriver/test/select_test.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ const { Browser } = require('../index')
2424

2525
let singleSelectValues1 = {'name': 'selectomatic', 'values': ['One', 'Two', 'Four', 'Still learning how to count, apparently']};
2626
let 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

2830
suite(
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

Comments
 (0)