Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 2x 2x 2x 2x | /** * * Select option with a specific value. * * <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 name="someName5" value="someValue5">seis</option> </select> :selectByAttribute.js it('Should demonstrate the selectByAttribute command', () => { const selectBox = $('#selectbox'); const value = selectBox.getValue(); console.log(value); // returns "someValue0" selectBox.selectByAttribute('value', 'someValue3'); console.log(selectBox.getValue()); // returns "someValue3" selectBox.selectByAttribute('name', 'someName5'); console.log(selectBox.getValue()); // returns "someValue5" }); * </example> * * @alias element.selectByAttribute * @param {String} attribute attribute of option element to get selected * @param {String} value value of option element to get selected * @uses protocol/findElementFromElement, protocol/elementClick * @type action * */ import { getElementFromResponse } from '../../utils' export default async function selectByAttribute (attribute, value) { /** * convert value into string */ value = typeof value === 'number' ? value.toString() : value /** * find option elememnt using xpath */ const normalized = `[normalize-space(@${attribute.trim()}) = "${value.trim()}"]` const optionElement = await this.findElementFromElement(this.elementId, 'xpath', `./option${normalized}|./optgroup/option${normalized}`) /** * select option */ return this.elementClick(getElementFromResponse(optionElement)) } |