Selenium WebDrive findElements返回对象

时间:2017-07-26 12:07:08

标签: javascript node.js selenium

我试图遍历某些表并获取innerHTML()但是当我尝试这样做时,我得到innerHTML不是一个函数。 我查看了文档,findElements应该返回一个数组,但是如果我检查item的类型是一个对象

   var webdriver = require('selenium-webdriver'),
        By = webdriver.By,
        until = webdriver.until;

    var driver = new webdriver.Builder()
        .forBrowser('firefox')
        .build();

    driver.get('https://stackoverflow.com/');

    driver.findElements(By.xpath('//*[@id="question-mini-list"]/div'))
    .then(function(item) {
        console.log( item );
    });

1 个答案:

答案 0 :(得分:2)

从他们的GitHubfindElements返回Array,其中包含Elements(对象!)。

findElements: function(scope) {
  var element;

  if (element = $(this.params.id))
    if (this.match(element))
      if (!scope || Element.childOf(element, scope))
        return [element];

  scope = (scope || document).getElementsByTagName(this.params.tagName || '*');

  var results = [];
  for (var i = 0; i < scope.length; i++)
    if (this.match(element = scope[i]))
      results.push(Element.extend(element));

  return results;
}

要获取innerHTML,您可以在元素上使用getAttribute函数:

item[0].getAttribute('innerHTML');