无法访问列表控件中的文件

问题描述 投票:0回答:1

我打算在远程桌面上执行这个脚本,每天使用 WinSCP 自动下载一个文件。

到目前为止,这个脚本可以登录并进入资源管理器窗口,但我无法访问窗口中的文件。我希望能够遍历文件列表并打开特定文件。

文件标记为“YYYY-MM-DD-0001”、“YYYY-MM-DD-0002”等,我希望能够打开相应日期的最新文件。

import pywinauto
from pywinauto.application import Application
from pywinauto.keyboard import send_keys
from pywinauto import keyboard as kb
import time

HOST_NAME = ''
USER_NAME = ''
PASSWORD = ''
PORT_NUMBER = ''
DIRECTORY = ''

main_app = Application(backend='uia').start(cmd_line=r"C:\Program Files (x86)\WinSCP\WinSCP.exe").connect(title='WinSCP', timeout=10)
main_dlg = main_app.window(title='WinSCP')
main_dlg.set_focus()

Login_app = Application().connect(title=u'Login', class_name='TLoginDialog', timeout=10)
Login_dlg = Login_app.window(title=u'Login', class_name='TLoginDialog')
Login_dlg.set_focus()
Login_dlg.wait('ready', timeout=10)

Login_dlg['Edit1'].set_text(PORT_NUMBER) # Port Number
Login_dlg['Edit2'].set_text(PASSWORD) # Password
Login_dlg['Edit3'].set_text(USER_NAME) # User name
Login_dlg['Edit4'].set_text(HOST_NAME) # Host Name

Login_dlg['Button5'].click() # Login


appExplorer = Application().connect(title_re='.*' + HOST_NAME + ' - WinSCP', class_name="TScpExplorerForm", timeout=10)

winExplorer = appExplorer.window(title_re='*- carestreamhealth@' + HOST_NAME + ' - WinSCP', class_name='TScpExplorerForm')
winExplorer.wait('visible',timeout=10)
winExplorer.set_focus()

winExplorer.TTBXToolbar4.click_input() # click into Address bar
winExplorer.TTBXToolbar4.TTBXEdit.set_text(DIRECTORY)
send_keys('{ENTER}')
winExplorer.wait('ready', timeout=10)
python winscp pywinauto
1个回答
0
投票

为什么要自动化 WinSCP GUI 来下载文件?

使用 WinSCP 脚本:
https://winscp.net/eng/docs/guide_automation

另见:
从 Python 在控制台中运行 WinSCP 命令

另一种选择是使用本机 Python FTP/SFTP 模块。

© www.soinside.com 2019 - 2024. All rights reserved.