не могу щелкнуть меню файла, управляемого с помощью pywinauto - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь открыть программу с помощью pywinauto, а затем щелкаю по строке меню, чтобы открыть «О программе ...». С моим кодом мне удается открыть программу, но я всегда получаю следующую ошибку:

RuntimeError: There is no menu.

Кроме того, хотя мне удается открыть программу, я получаю следующее сообщение:

UserWarning: 32-bit application should be automated using 32-bit Python (you use 64-bit Python)

Я не уверен, почему я получаю это, и я пытался найти ответ в других темах на сайте, а также в документации, но это не помогло.

С Notepad Мне удалось открыть его, щелкнуть мышью и даже ввести текст, но я не могу этого сделать с помощью этой программы. Я использую следующий код:

from pywinauto.application import Application
app=Application().start("C:\Program Files (x86)\Spicer Consulting\SC11 5.5\spectrum.exe")
dlg = app['spectrum']
dlg.print_control_identifiers()
app.spectrum.menu_select("Help->About...")

и получаю следующий результат:

'somePath'/spectrm objects.py:19: DeprecationWarning: invalid escape sequence \P
  app=Application().start("C:\Program Files (x86)\Spicer Consulting\SC11 5.5\spectrum.exe")
C:\ProgramData\Anaconda3\lib\site-packages\pywinauto\application.py:1087: UserWarning: 32-bit application should be automated using 32-bit Python (you use 64-bit Python)
  UserWarning)
Control Identifiers:

LVFrame - 'spectrum'    (L0, T0, R0, B0)
['spectrumLVFrame', 'spectrum', 'LVFrame']
child_window(title="spectrum", class_name="LVFrame")
Traceback (most recent call last):

  File "<ipython-input-30-233ff4ffaa0e>", line 1, in <module>
    runfile(''somePath'/spectrm objects.py', wdir='somePath')

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "'somePath'/spectrm objects.py", line 22, in <module>
    app.spectrum.menu_select("Help->About...")

  File "C:\ProgramData\Anaconda3\lib\site-packages\pywinauto\controls\hwndwrapper.py", line 1084, in menu_select
    self.menu_item(path, exact=exact).select()

  File "C:\ProgramData\Anaconda3\lib\site-packages\pywinauto\controls\hwndwrapper.py", line 1030, in menu_item
    raise RuntimeError("There is no menu.")

RuntimeError: There is no menu.

Мой план после того, как я закончу с этим, состоит в том, чтобы отобразить всю программу (это означает, что я смогу контролировать каждую кнопку, флажок, список и т. д. c. в программе), поэтому мой вопрос разделен на 2:

  1. Как решить проблему, указанную выше?

  2. Как сопоставить все кнопки и виджеты в программе?

Любые предложения о том, как заставить все это работать?

...