Я использую pbixrefresher для автоматизации обновления отчета PBI, который работает правильно, однако мне также нужно сохранить таблицу данных в виде файла csv, скопировав таблицу в excel и затем сохранив ее как csv, поскольку таблица предназначена длябольшой для экспорта в формате csv в PBI (около 60 тыс. строк). Я могу заставить pywinauto перейти к представлению данных в PBI, и благодаря некоторой помощи здесь появилось выпадающее меню (контекстное меню или всплывающее меню). Я могу открыть меню до нужной опции, но ничего не происходит, когда я использую click_input ('left'). Меню продолжает отображаться, и никаких действий не предпринимается. Код как показано ниже:
import time
import os
from pywinauto.application import Application
from pywinauto import timings
timings.after_clickinput_wait = 1
WORKBOOK = "C:/BBSDMthly/DA_AgentList.pbix"
PROCNAME = "PBIDesktop.exe"
os.system('start "" "' + WORKBOOK + '"')
app = Application(backend = 'uia').connect(path = PROCNAME)
win = app.window(title = 'DA_AgentList - Power BI Desktop')
time.sleep(5)
win.wait("enabled", timeout = 300)
win.Save.wait("enabled", timeout = 300)
win.set_focus()
win.Data.click_input()
win.Save.wait("enabled", timeout = 300)
win.wait("enabled", timeout = 300)
win.click_input(button = 'right')
win.Save.wait("enabled", timeout = 300)
win.wait("enabled", timeout = 300)
win.set_focus()
win.type_keys("{VK_TAB 7}")
win.click_input(button='left')
Я искал другие запросы по этому вопросу и нашел несколько, но ни один из опробованных мной вариантов не работал. Например, я попытался:
app.PopupMenu.wait('visible', timeout=15).menu().get_menu_path('Copy table')[0].click_input()
, что вернуло:
`Файл" C: \ Program Files \ Anaconda3 \ lib \ site-packages \ pywinauto \ timings.py ", строка 375, в wait_until на повышение err
TimeoutError: timedEr`
Я также попытался:
app.ContextMenu.child_window(title="Copy table", control_type="MenuItem").click_input()
, который возвратилMatchError:
MatchError: Could not find 'ContextMenu' in 'dict_keys(['DA_AgentList - Power BI DesktopDialog', 'Dialog', 'DA_AgentList - Power BI Desktop'])'
Я также пытался: app.top_window().menu.item_by_path('Copy table')[0].click_input()
, который возвратил MatchError: Could not find 'Copy table' in 'dict_keys(['System'])'
Я пытался использовать print_control_identifiers для получения дополнительной информациив выпадающем меню, но ничего, что возвращается, кажется, не имеет к этому отношения. К сожалению, у меня нет inspect.exe, поэтому я не могу использовать его для получения дополнительной информации.
Может кто-нибудь помочь мне в этом, пожалуйста?