【问题标题】:Webdriver.io elements usageWebdriver.io 元素使用
【发布时间】:2016-07-29 16:00:46
【问题描述】:

我想遍历元素并对它们做一些事情,例如设置值等。现在我有以下代码,但我什至无法从选定元素中获取属性。

 client.elements("freeforms-widget").then(function (elems) {
           for (let elem of elems.value) {
             let k =  client.elementIdAttribute(elem.ELEMENT,'name');
             console.log(k);
          }
        })

我看到的只有以下内容:

{ state: 'pending' }
{ state: 'pending' }
{ state: 'pending' }
{ state: 'pending' }
{ state: 'pending' }
{ state: 'pending' }

元素本身似乎很好

{ state: 'success',
  sessionId: 'dd301839-369a-45a2-a38c-4bb8ce0a439b',
  hCode: 1204992695,
  value:
   [ { ELEMENT: '0' },
     { ELEMENT: '1' },
     { ELEMENT: '2' },
     { ELEMENT: '3' },
     { ELEMENT: '4' },
  ....

我做错了什么以及如何解决?

【问题讨论】:

    标签: javascript selenium webdriver webdriver-io


    【解决方案1】:

    elementIdAttribute() 返回一个 promise - { state: 'pending' } 是一个未解决的待处理承诺的字符串表示形式。要在控制台上打印真正的价值,您需要解决承诺:

    client.elementIdAttribute(elem.ELEMENT,'name').then(function (k) {
      console.log(k);
    });
    

    【讨论】:

    • 虽然这可行,但并不理想。这意味着当相互比较元素时,我们必须编写带有大量回调的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多