1. ホーム
  2. java

[解決済み] JavaTableからセルデータを取得できない

2022-01-30 01:57:16

質問

以下のような表があるのですが、「Text to retrive"」と書かれているテキストが取得できないのです。

<イグ

私が使用しているコードは以下の通りです。この場合、空白の文字列が表示されます。

Dim a
TableRows = WpfWindow("Window").JavaWindow("JFrame").JavaTable("JavaTable").GetROProperty("rows")
For Iterator = 0 To TableRows Step 1
a = WpfWindow("Window").JavaWindow("JFrame").JavaTable("JavaTable").getCellData(Iterator,1)
Next

以下のコードも試してみましたが、成功しませんでした。

Dim a
TableRows = WpfWindow("Window").JavaWindow("JFrame").JavaTable("JavaTable").GetROProperty("rows")
For Iterator = 0 To TableRows Step 1
a = WpfWindow("Window").JavaWindow("JFrame").JavaTable("JavaTable").Object.getValueAt(Iterator,1)
Next

解決方法は?

あなたのテーブルは、awtまたはswtベースのテーブルですか?(ツールキットのクラスを調べてください) swtの場合、UFTはセルの値を取得するために、主にセルのgetText JavaMethodに依存しているため、事態が複雑になる可能性があります。JFaceや高度なレンダリングを使用している場合は、開発者に相談し、メモリからセルのテキスト値を読み出す適切な方法を教えてもらう必要があるかもしれません。

ほとんどの場合、.Object(Native Java)メソッドを使用して、.Objectにアクセスする必要があります。 表項目 その後、getData.toStringメソッドや、getData()が返すObjectの他のメソッドでロックを試すことができます。TableItem の set/get Data メソッドで複雑なデータを保存することはよくあることですが、これはルールではありません。場合によっては、開発者に相談するか、開発者がいない場合はリバースエンジニアリングをして、自分でコードを読む必要があります(もちろん、法的に許可されている場合のみです)。

まとめ:開発者が複雑なデータをテーブル項目に格納する方法を理解し、必要なときにいつでもそこからテキストを取得できるようにUFTを教える必要があります。これは、.Object(Native Java methods)の使用を意味する。

もちろん、テストライブラリにこのコードを表示したくない場合は、UFT Java Add-In ext.を使ったExtensibility Kit Solutionを考えることができます。