2016-07-06 6 views
2

私はRubyのセレンコードに次の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パーサーを使用する予定ですか? 'map'と' collect'はRubyで利用できます。 – tadman

+0

私はあなたがHTMLパーサを意味するのではないのですか?上記のjavaコードは機能しますが、rubyコードはitems配列に何も格納しません。私はどのように収集することもできますか? @タッドマン –

答えて

-2

Java Streamに相当するものはEnumeratorです。 Rubyにはcollectと同等のものはありません。 Java's collect is a generalization of foldingのRubyでは、injecteach_with_objectの2つの折り畳み操作があり、どちらもJavaのcollectの特別なケースです。 Streamを作成するためにstream()を呼び出すのと同じことは、ブロックなしでeachを呼び出してEnumeratorを作成することです。

しかし、collectをRubyで利用できるようにするには、それを自分で実装する必要があります。

関連する問題