ruby 中的 Java 流等效?

标签 java ruby selenium selenium-webdriver

我正在尝试将以下 Java selenium 代码转换为 Ruby selenium 代码

  List<String> items = myDriver.findElements(By.xpath("//tbody/tr[1]/td[1]")) //This returns an array
            .stream().map(WebElement::getText)  //Calls stream map 
            .collect(Collectors.toList()); 

我停留在将数组转换为流并使用 WebElement getText 将其映射并转换为列表的部分

这是我试过的

 items = driver.find_elements(:xpath, "//tbody/tr[1]/td[1]").map(&:text)

我似乎找不到流和 .collect 的 ruby​​ 等价物?我可以在这里做什么?

最佳答案

Java Stream 的等价物是 Enumerator .没有等同于 collect在 ruby 中。 Java's collect is a generalization of folding , Ruby有两个折叠操作:injecteach_with_object ,两者都是 Java 的 collect 的特例。相当于调用 stream() 来创建一个 Stream 是调用 each 而不用 block 来创建一个 Enumerator .

但是,如果您想要在 Ruby 中使用 collect 的完整通用性,则必须自己实现它。

关于ruby 中的 Java 流等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38233794/

相关文章:

java - 尝试以嵌入式模式启动 BrowserMobProxyServer 时发生 JNI 错误(Java、Maven)

java - 如何检查特定值是否显示在 Selenium Web 驱动程序的表格内

java - IntelliJ + Spring Web MVC

java - 改进 Java Soap 客户端

ruby - 导轨 : seeding database data and date formats

ruby - 如何从 PgSQL DB 获取时间

java - 如何在 Java AWT 应用程序中禁用系统键盘处理?

ruby-on-rails - 获取 Ruby 变量引用的对象

java - 如何通过 Java 使用 Selenium 右键单击​​链接并在新选项卡中打开链接

java - Selenium Chrome WebDriver 的 NoClassDefFoundError