Selenium(javascript)遍历findElements()并获取其每个值

时间:2017-07-12 13:42:30

标签: javascript selenium

var personsWrapper = driver.findElement(By.className('_class1 _class2'));

personsWrapper.findElements(By.tagName('button')).then(function (persons_arr) {
    console.log("length:", persons_arr.length);
    persons_arr.forEach(function (p) {
        var x = p.getAttribute("value");
        console.log(x)
    })
});

当我尝试这个时,我在控制台上获得了一个ManagedPromise对象而不是按钮的值 - 为什么?

1 个答案:

答案 0 :(得分:2)

方法getAttribute返回Promise,因此您需要先解决它。

var webdriver = require('selenium-webdriver');
var By = webdriver.By;
var map = webdriver.promise.map;

var elems = driver.findElements(By.css("._class1._class2 button"));

map(elems, e => e.getAttribute("value"))
  .then(function(values) {
    console.log(values);
  });