【问题标题】:How I can get the current focused element of desktop application我如何获得桌面应用程序的当前焦点元素
【发布时间】:2019-11-08 11:47:39
【问题描述】:

我想自动化我的桌面应用程序(Windows 应用程序)的测试用例,我需要在其中获取/获取当前聚焦的元素。有人可以在这方面帮助我或指导吗?

我尝试使用 pywinauto 的 GetFocus 方法,它只返回了活动窗口的详细信息,但我需要重点元素信息

【问题讨论】:

  • 你的意思是有键盘焦点的子元素吗?
  • 我想获取当前的焦点元素,例如用户打开一个个人信息表单,焦点元素是名称字段的文本框。现在我想进入当前关注的项目,在这种情况下是名称字段。我使用了 get_focus 但这对我不起作用,因为 getfocus() 给了我窗口,我需要特定的项目/元素。

标签: python ui-automation pywinauto


【解决方案1】:

目前尚未实施,但解决方法是可能的。对于“win32”后端:

import win32gui
from pywinauto.controls.hwndwrapper import HwndWrapper
keyboard_focused = HwndWrapper(win32gui.GetFocus())

对于“uia”后端(可能不适用于 WPF 应用):

import win32gui
from pywinauto.controls.uiawrapper import UIAWrapper
keyboard_focused = UIAWrapper(win32gui.GetFocus())

我已提交issue #760 稍后实施。

【讨论】:

  • win32gui.GetForegroundWindow() 比 GetFocus() 给了我更好的成功,它总是返回 0。此外,要安装 win32gui,您应该安装 pywin32 包(尝试 pip install win32gui 会出错)。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 2022-12-31
  • 2012-02-27
  • 2013-07-30
  • 1970-01-01
  • 2013-04-22
相关资源
最近更新 更多