Webdriver.io 元素使用 [英] Webdriver.io elements usage

查看:26
本文介绍了Webdriver.io 元素使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to iterate over element and do some thing on all of them, e.g. set values etc. For now i have following code, but i cant even get attribute from selected elements.

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

我所看到的只是以下内容:

And all i see is following :

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

elems 本身似乎没问题

The elems itself seems to be fine

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

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

What i'm doing wrong and how to fix it?

推荐答案

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

elementIdAttribute() returns a promise - { state: 'pending' } is a string representation of a non-resolved pending promise. To have a real value printed on the console you need to resolve the promise:

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

这篇关于Webdriver.io 元素使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆