javafx クライアントの gui テストにhttps://github.com/TestFX/TestFXを使用しています。testfx クエリを使用すると、comboBox を取得できますが、検証用のテキストを取得できません。コンボ ボックスは、コンバーターと特定のリソース バンドルによってテキストが解決される列挙型の値を表示します。コンボ ボックスのシーン グラフは次のようになります。
javafx.scene.control.ComboBox
javafx.scene.layout.StackPane:arrow-button
javafx.scene.layout.Region:arrow
com.sun.javafx.scene.control.skin.ComboBoxListViewSkin$4$1:null
com.sun.javafx.scene.control.skin.LabeledText:null
comboBox.getValue()
テキストではなく列挙値のみを提供します(列挙値を確認できましたが、これはGUIテストであるため、表示されたテキストを確認する必要があります)。試してみると、comboBox.getChildrenUnmodifiable().toString()
印刷されていることがわかりました
[StackPane[id=arrow-button, styleClass=arrow-button], ComboBoxListViewSkin$5[id=list-view, styleClass=list-view], ComboBoxListViewSkin$4$1@4f65f1d7[styleClass=cell indexed-cell list-cell]'StringOfInterest']
最後の文字列「StringOfInterest」はまさに私が必要としているものですが、それがどこから来たのかは不明です。javafxのソースコードを調べるとNode#toStringが使われているようです。ただし、最後の部分 (「StringOfInterest」) がどこから来たのかは不明です。ComboBox のすべての子のテキストを取得しようとしましたが、問題の文字列はその一部ではありません。
文字列を抽出するにはどうすればよいですか?