UNPKG

@luminati-io/webdriverio8

Version:

Next-gen browser and mobile automation test framework for Node.js

53 lines 2.9 kB
import { getElementFromResponse } from '../../utils/index.js'; /** * * Select option with a specific index. * * <example> :example.html <select id="selectbox"> <option value="someValue0">uno</option> <option value="someValue1">dos</option> <option value="someValue2">tres</option> <option value="someValue3">cuatro</option> <option value="someValue4">cinco</option> <option value="someValue5">seis</option> </select> :selectByIndex.js it('Should demonstrate the selectByIndex command', async () => { const selectBox = await $('#selectbox'); console.log(await selectBox.getValue()); // returns "someValue0" await selectBox.selectByIndex(4); console.log(await selectBox.getValue()); // returns "someValue4" }); * </example> * * @alias element.selectByIndexs * @param {number} index option index * @uses protocol/findElementsFromElement, protocol/elementClick * @type action * */ export async function selectByIndex(index) { /** * negative index check */ if (index < 0) { throw new Error('Index needs to be 0 or any other positive number'); } /** * get option elememnts using css */ const optionElements = await this.findElementsFromElement(this.elementId, 'css selector', 'option'); if (optionElements.length === 0) { throw new Error('Select element doesn\'t contain any option element'); } if (optionElements.length - 1 < index) { throw new Error(`Option with index "${index}" not found. Select element only contains ${optionElements.length} option elements`); } /** * select option */ return this.elementClick(getElementFromResponse(optionElements[index])); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0QnlJbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbGVtZW50L3NlbGVjdEJ5SW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FFL0IsS0FBYTtJQUViOztPQUVHO0lBQ0gsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVEOztNQUVFO0lBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUcsUUFBUSxDQUFDLENBQUE7SUFFcEcsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixLQUFLLDZDQUE2QyxjQUFjLENBQUMsTUFBTSxrQkFBa0IsQ0FBQyxDQUFBO0lBQ3BJLENBQUM7SUFFRDs7TUFFRTtJQUNGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQVcsQ0FBQyxDQUFBO0FBQ3JGLENBQUMifQ==