我编写了一个测试,它遍历下拉选项并根据选项设置值。在此过程中,我还必须评估是否确实设置了我的代码为-
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');
}
但是,在下面的语句满足并通过测试时,if语句并不是有效的。
await browser.expect(audioDevicelist.selectedIndex).eql(i);
有什么指示吗?我只想移除for循环中的等待。
发布于 2022-03-17 14:08:51
您不能直接从Selector
结果中获得任何属性,因为Selector
的结果是一个特殊的异步函数,您应该运行它以获得DOMNodeState。之后,您可以从节点状态获取此属性。但是在任何情况下,您都应该使用await
获取DOMNodeState
。
https://stackoverflow.com/questions/71510788
复制相似问题