我使用以下代码访问隐藏图标,显示其弹出菜单,并单击“注销”菜单项:
import time
from pywinauto.application import Application
app = Application(backend="uia").connect(path="explorer.exe")
st = app.window(class_name="Shell_TrayWnd")
t = st.child_window(title="Notification Chevron").wrapper_object()
t.click()
time.sleep(0.25)
list_box = Application(backend="uia").connect(class_name="NotifyIconOverflowWindow")
list_box_win = list_box.window(class_name="NotifyIconOverflowWindow")
list_box_win.wait('visible', timeout=30, retry_interval=3)
list_box_win.child_window(title="Citrix Workspace").click_input(button='right').menu_item('Sign Out').click_input()
弹出菜单显示,但我得到错误:AttributeError: 'NoneType' object has no attribute 'menu_item'
当我尝试添加这段代码(而不是.menu_item('Sign Out').click_input()
)时:
connector = Application()
connector.connect(path="C:\\Program Files (x86)\\Citrix\\ICA Client\\SelfServicePlugin\\SelfService.exe")
connector.PopupMenu.MenuItem("Sign Out").ClickInput()
路径反映的是系统托盘中负责图标的应用程序。我得到了错误:MatchError: Could not find 'PopupMenu' in 'dict_keys([])'
。那么我可以在弹出窗口中访问菜单项吗?
顺便说一句:它运行在windows1064位和python3.6上。
发布于 2020-06-22 16:10:19
未打磨/优化(但工作)的代码如下所示:
import pywinauto.application
import time
taskbar = pywinauto.application.Application(backend="uia").connect(path="explorer.exe")
windows_tray = taskbar.window(class_name="Shell_TrayWnd")
tray = windows_tray.child_window(title="Notification Chevron").wrapper_object()
tray.click()
time.sleep(1)
app_list_box = pywinauto.application.Application(backend="uia").connect(class_name="NotifyIconOverflowWindow")
app_list_box_win = app_list_box.window(class_name="NotifyIconOverflowWindow")
target_app = app_list_box_win.child_window(title = "Citrix Workspace")
target_app.click_input(button = "right")
citrix = pywinauto.application.Application().connect(path='Receiver.exe')
sign = citrix.PopupMenu.menu().get_menu_path("Sign In...")[0]
sign.click_input()
其中'Receiver.exe‘是在系统托盘中运行的应用程序的可执行文件,其标题为"Citrix Workspace“。
https://stackoverflow.com/questions/58715978
复制相似问题