【问题标题】:Click on IAccessible(MSAA) element without DefaultAction单击没有 DefaultAction 的 IAccessible(MSAA) 元素
【发布时间】:2013-04-12 13:05:24
【问题描述】:

我一直在尝试使用 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是正常的。

有没有办法在这些元素上单击(双击)?发送一些事件等... 我正在考虑按坐标点击,但这可能不是一个好主意。

谢谢

【问题讨论】:

    标签: python ui-automation msaa iaccessible


    【解决方案1】:

    发送鼠标点击绝对是可能的(使用 SendInput 或 Python 等价物)。您首先要做的是验证您的可点击点是否确实指向您要点击的对象(即,可点击点可能被另一个窗口/控件遮挡)。

    您可以使用AccessibleObjectFromPoint(这似乎被pyMSAA中的msaa.point包裹)来检查该点下的可访问对象实际上是您尝试单击的同一对象。

    现在您可以检查accLocation 中的各个点以找到您的可点击点。最好的起始点是中心;如果失败,请尝试在 x 和 y 方向上分别为宽度(或高度,视情况而定)的 1/3、1/2、2/3 秒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-03
      • 2019-08-27
      • 2022-01-05
      • 1970-01-01
      • 2014-10-02
      • 2016-01-02
      • 2021-04-24
      • 2013-10-30
      相关资源
      最近更新 更多