2016-07-06 75 views
2

我想下面的Java硒代码转换为Ruby的硒代码Java流相当于红宝石?

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?我能在这里做什么?

+0

您打算使用哪个HTML解析器? Ruby中提供'map'和'collect'。 – tadman

+0

我不太清楚HTML解析器的意思吗?上面给出的java代码有效,但ruby代码不会在items数组中存储任何内容。我怎么能使用收集也? @tadman –

回答

-2

相当于Java StreamEnumerator。 Ruby中没有等效于collect。 Ruby有两种折叠操作:injecteach_with_object,这两种都是Java的collect的特殊情况。相当于拨打stream()以创建Stream即拨打each而不创建Enumerator。但是,如果您想要在Ruby中提供collect的完整通用性,您必须自己实现它。