javascript - 如何处理 findElements 结果?

标签 javascript selenium-webdriver webdriverjs

代码 1

resultsBoard.findElements(By.css(mySelector)).then(function(elements) {
  elements.forEach(function(val, idx) {
    elements[idx].getText().then(function(text) {
        console.log(text);
    });
  });
});

代码2

resultsBoard.findElements(By.css('mySelector')).then(function(elements) {
  for (var idx = 0; idx < elements.length; idx++) {
    elements[idx].getText().then(printText(text));
  }
});

代码 1 效果很好,可以检索与我的选择器匹配的所有元素的文本。 代码 2 给了我一个

ReferenceError: text is not defined

有什么区别?为什么会出现这种情况?

最佳答案

第二个片段添加了立即调用函数 (printText) 的调用括号,期望已定义 text。第一个片段中不存在这些括号。

elements[idx].getText().then(printText(text));

// is equivalent to...

var _result = printText(text);
elements[idx].getText().then(_result);

要提供命名函数作为参数,您只需使用其名称作为变量:

elements[idx].getText().then(printText);

关于javascript - 如何处理 findElements 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37092606/

相关文章:

javascript - 如何在 AngularJS 应用程序中使用 Protractor 禁用动画?

javascript - 为什么我的角色在 2D 横向卷轴中移动不顺畅?

python - bash 中的标准输出被一行代码阻塞

selenium-webdriver - 有没有办法使用 Selenium Webdriver 更改 URL 文本?

javascript - 无法使用带有 PageFactory 的 Selenium Java 选择下拉元素

javascript - 使用 phantomjs 和 Protractor 访问 iframe 内的 Web 元素

javascript - 有没有更好的方法将音频与视频同步(不只是将其放入视频本身)?

javascript - 使用find typescript方法返回 Angular 4中的值

javascript - 如何使用 javascript 检测在 PDF 中标记图像的位置

javascript - console.log 消息在执行实际任务之前出现