pywinauto查找精确的托盘项目

2024-10-01 15:28:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为桌面应用程序创建一个自动化的GUI测试框架,我正在使用pywinauto来实现这一点。 我的问题是,即使使用SWAPY和Winspector,我仍然无法检测托盘区域并在那里找到我的应用程序。在

我已经尝试了从当前文档中的所有方法,也尝试了web上的卷示例,但是没有成功。在

from pywinauto import taskbar

sti = taskbar.SystemTrayIcons.WrapperObject()

print 'Clicking ', sti.Button(0).info.text
sti.Button(0).Click()

技术上,我唯一需要的就是找到托盘图标的确切位置,然后点击它来打开菜单。在

pywinauto有一些与任务栏相关的功能,但我无法让它们工作。在

有谁能告诉我怎么做吗?在

编辑

我试过你的主意,但是我得到了一个错误:

^{pr2}$

以及回溯:

Traceback (most recent call last):
  File "C:/Users/nicolae.farcas/Desktop/pywinauto_c1.py", line 9, in <module>
    texts = taskbar.SystemTrayIcons.Texts()
  File "C:\Python27\lib\site-packages\pywinauto\controls\common_controls.py", line 1932, in Texts
    btn_text = self.GetButton(i).text
  File "C:\Python27\lib\site-packages\pywinauto\controls\common_controls.py", line 1914, in GetButton
    button.idCommand)
RuntimeError: GetButtonInfo failed for button with command id 0

我现在使用的是Windows7Pro x64,但我需要它也能在8、8.1和10上运行(我可以放弃10,因为我认为对它的支持仍然落后)


Tags: textinpy应用程序liblinebuttonfile
1条回答
网友
1楼 · 发布于 2024-10-01 15:28:33

如果使用pywinauto 0.5.1,请调用taskbar.SystemTrayIcons.Texts(),然后将相应的文本复制到以下调用:

taskbar.ClickSystemTrayIcon('button text', exact=True, double=True)

对于隐藏区域,请使用ClickHiddenSystemTrayIcon(...)。在

另外请注意,弹出菜单属于您的应用程序进程。所以您需要连接到应用程序并调用app.PopupMenu.MenuItem('item name').Click()或{}。在

如果不起作用,请提供错误输出和操作系统版本。在

编辑:

(关于Python 32/64位问题的评论)

理想的方法是在64位Python中运行特定于任务栏的代码,然后为单独的应用程序特定的脚本启动32位Python。这不太方便,但应该行得通。在

相关问题 更多 >

    热门问题