首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击不带DefaultAction的IAccessible(MSAA)元素

单击不带DefaultAction的IAccessible(MSAA)元素
EN

Stack Overflow用户
提问于 2013-04-19 15:29:25
回答 1查看 1.3K关注 0票数 3

我一直在尝试使用pyMSAA在python上使用MSAA创建自动化测试

我遇到了一个按钮没有DefaultAction的问题

代码语言:javascript
复制
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是很正常的。

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

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-07-28 14:32:22

发送鼠标点击绝对是可能的(使用SendInput或Python等效项)。你要做的第一件事是验证你的可点击的点实际上指向你想要点击的对象(即,可点击的点可能被另一个窗口/控件遮挡住了)。

您可以使用AccessibleObjectFromPoint (这似乎是由pyMSAA中的msaa.point包装的)来检查point下的accessible对象是否与您试图单击的对象实际上是同一个对象。

现在,您可以检查accLocation中的各个点来查找您的可点击点。最佳初始点是中心;如果失败,请尝试x和y方向上宽度(或高度)的1/3、1/2、2/3s处的点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16099513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档