首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >避免在testafe中等待循环

避免在testafe中等待循环
EN

Stack Overflow用户
提问于 2022-03-17 10:31:18
回答 1查看 47关注 0票数 0

我编写了一个测试,它遍历下拉选项并根据选项设置值。在此过程中,我还必须评估是否确实设置了我的代码为-

代码语言:javascript
运行
复制
    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语句并不是有效的。

代码语言:javascript
运行
复制
await browser.expect(audioDevicelist.selectedIndex).eql(i);

有什么指示吗?我只想移除for循环中的等待。

EN

回答 1

Stack Overflow用户

发布于 2022-03-17 14:08:51

您不能直接从Selector结果中获得任何属性,因为Selector的结果是一个特殊的异步函数,您应该运行它以获得DOMNodeState。之后,您可以从节点状态获取此属性。但是在任何情况下,您都应该使用await获取DOMNodeState

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71510788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档