Tengo una prueba escrita que recorre las opciones desplegables y establece el valor según las opciones. Durante el proceso, también debo evaluar si el índice está configurado para el cual mi código es:
test(`Select all available options`, async (browser) => { const audioDevicelist = Selector( '#__next > div > main > div.Home_toolbar__JY_RL > div.Home_deviceControls__nQw4V > select:nth-child(2)' ); const setSelectedIndex = ClientFunction( (index) => { audioDevicelist().selectedIndex = index; }, { dependencies: { audioDevicelist } } ); await browser.wait(3000); for (let i = 0; i < 4; i++) { await setSelectedIndex(i); await browser.expect(audioDevicelist.selectedIndex).eql(i); } } }); This works, but I wanted to avoid the await inside a loop. So I tried - if (audioDevicelist.selectedIndex === i) { let ops += 1; } else { console.log('Sorry'); }Pero de alguna manera, la declaración if no se está validando, mientras que la siguiente declaración satisface y pasa la prueba.
await browser.expect(audioDevicelist.selectedIndex).eql(i);¿Algún consejo? Solo quería eliminar await dentro del bucle for.
No puede obtener ninguna propiedad del resultado del Selector directamente porque el resultado del Selector es una función asíncrona especial y debe ejecutarla para obtener DOMNodeState . Después de eso, puede obtener esta propiedad del estado del nodo. Pero en cualquier caso, debe usar await para obtener DOMNodeState .