代码之家  ›  专栏  ›  技术社区  ›  demouser123

在Cucumber JS中使用async/await处理元素子元素,量角器不返回任何结果

  •  0
  • demouser123  · 技术社区  · 6 年前

    li 子元素 ul async/await 管理承诺。

    我的场景HTML看起来像这样

           <div class="some-class">
              <ul class="some-ul-class">
                   <li>
                    <span>Heading1: </span>
                    <span class="some-span-class> Value of Heading 1</span>
                   </li>
                   <li>
                    <span>Heading2: </span>
                    <span class="some-span-class> Value of Heading 2</span>
                   </li>
                   <li>
                    <span>Heading3: </span>
                    <span class="some-span-class> Value of Heading 3</span>
                   </li>
                   <li>
                    <span>Heading4: </span>
                    <span class="some-span-class> Value of Heading 4</span>
                   </li>
                   <li>
                    <span>Heading5: </span>
                    <span class="some-span-class> Value of Heading 5</span>
                   </li>
    

    Heading1 , Heading2 文本。我在SO中看到了很多方法,但都没有找到解决方案。大多数解决方案都没有 异步/等待

    我提到的例子: Protractor Tests get Values of Table entries Protractor : Read Table contents

    map 内部功能 async 块,但结果是 ECONNREFUSED 错误,因此建议不要这样做 here .

    如果有人能指导我解决这个问题,我将不胜感激。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Majesty    6 年前

    const elements = $$('.some-span-class');
    const expected = [];
    const elementsLength = await elements.count();
    for (let i = 0; i < elementsLength; i += 1){
        const text = await elements.get(i).getText();
        expected.push(text);
    }
    

    你什么时候做的 async/await $$ ElementArrayFinder 不需要等待,而 getText count !webdriver.promise.Promise await 先发言。

        2
  •  0
  •   Kacper    6 年前

    const elements = $$('.some-span-class');
    const textFromElements = elements.getText();
    

    textFromElements 是字符串[]的承诺。解决承诺时:

    textFromElements.then((result) => { console.log(result) )})

    你应该得到一系列的结果。