【问题标题】:Get list of elements with class name in javascript with selenium使用 selenium 在 javascript 中获取具有类名的元素列表
【发布时间】:2016-08-30 05:29:02
【问题描述】:

如何在带有 selenium 的 javascript 中获取具有特定类名的元素列表?

我正在搜索类message_body 的任何元素。我想要一个包含所有具有该类的元素的数组。

driver.findElements(By.className("message_body")) 不起作用,它似乎返回了别的东西。

我怎样才能得到这份清单?

【问题讨论】:

  • 它似乎返回了什么?你在寻找什么样的阵列? (你能用driver.findElements(By.className("message_body"))展示你的作业吗?
  • @Tyler 我不确定。另一个 SO 答案说它返回 promise,但我不知道这是什么意思。
  • 您使用的是哪个版本的 Selenium?

标签: javascript selenium selenium-webdriver


【解决方案1】:

所以,我使用的是旧版本的 Selenium,v2.47.1,但是当 driver.findElements(By.className("someClass")) 不够用时我使用的是 driver.findElements(By.xpath("/path/to/[@class='someClass']")) 。这将返回一个List<WebElement>。如果我没记错的话,By.xpath 比某些浏览器上的其他一些选项慢一点,但不是很多....

【讨论】:

  • 这是 javascript,所以我认为不会返回 List<WebElement>,但这可能有效。
  • 对不起,这不起作用。它给了driver.findElements is not a function
  • 哦!我把它误读为java——这是一个java函数。对此感到抱歉。
【解决方案2】:

这是一个从元素列表中获取文本的示例:

driver.findElements(By.className("message_body")).then(function(elements){
    elements.forEach(function (element) {
        element.getText().then(function(text){
            console.log(text);
        });
    });
});

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 2017-07-21
    • 1970-01-01
    • 2011-11-09
    • 2020-10-10
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多