1

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 のすべての子のテキストを取得しようとしましたが、問題の文字列はその一部ではありません。

文字列を抽出するにはどうすればよいですか?

4

1 に答える 1