3

pyMSAAを使用して Python で MSAA の自動テストを作成しようとしています

ボタンに DefaultAction がない場合に問題が発生しました

b.accDoDefaultAction()

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "msaa.py", line 215, in accDoDefaultAction
    self.IAccessible._IAccessible__com_accDoDefaultAction(objChildId)
_ctypes.COMError: (-2147352573, 'Member not found.', (None, None, None, 0, None)
)

DefaultAction がないことは正常であることがわかりました。

そのような要素をクリック(ダブルクリック)する方法はありますか? 何かイベントを送ったり… 座標でクリックしようと思っているのですが、ダメかもしれません。

ありがとう

4

1 に答える 1

0

マウス クリックの送信は確実に可能です (SendInput または Python の同等物を使用)。最初に行うことは、クリック可能なポイントが実際にクリックしたいオブジェクトに移動していることを確認することです (つまり、クリック可能なポイントが別のウィンドウ/コントロールによって隠されている可能性があります)。

AccessibleObjectFromPoint (これmsaa.pointは pyMSAA でラップされているようです) を使用して、ポイントの下にあるアクセス可能なオブジェクトが実際にクリックしようとしているオブジェクトと同じであることを確認できます。

のさまざまなポイントをチェックしてaccLocation、クリック可能なポイントを見つけることができます。最適な開始点は中心です。それが失敗した場合は、x 方向と y 方向の両方で幅 (または必要に応じて高さ) の 1/3、1/2、2/3 でポイントを試します。

于 2013-07-28T06:32:21.663 に答える