【发布时间】:2021-03-19 04:34:31
【问题描述】:
我一直在尝试使用 pywinauto 自动执行重复性任务。它涉及使用特定的打印机软件加载和打印文件。我已经设法自动启动,但在打开“打开”对话框后卡住了。它引发了 TimeoutError 和 ElementNotFoundError
def print_file(app, file_name):
# find the main window
pexp = app.window(title_re = '.*Design.*')
# ctrl+o for open dialog
pexp.type_keys("^O")
# this works - output attached
pexp.print_control_identifiers()
# this should work but it doesn't
dialog = app.window(title_re = 'Open')
dialog.print_control_identifiers()
# this should work but it doesn't either
app['OpenDialog']['File name:2']['File name:Edit'].set_edit_text(file_name)
app['OpenDialog']['ComboBox']['OpenButton'].click()
输出可以在下面找到
还有错误信息:
更新:我已成功填写文件名编辑字段,但找不到单击打开拆分按钮的方法,如下所示:
| |
| | SplitButton - 'Open' (L868, T563, R956, B589)
| | ['OpenSplitButton', 'SplitButton6', 'Open4']
| | child_window(title="Open", auto_id="1", control_type="SplitButton")
| | |
| | | SplitButton - '' (L941, T563, R956, B589)
| | | ['SplitButton7', 'File name:SplitButton']
| |
我一直在尝试在我想要的文件名后输入 {ENTER},但没有成功。
尽管有上面的 print_control_identifiers(),如果我画出“SplitButton6”的轮廓,它会在打开旁边显示向下箭头。但是,如果我pexp['SplitButton5'].draw_outline() 它将在整个拆分按钮上绘制轮廓。好像有什么可疑的地方。
我现在正在尝试 pexp['SplitButton5'].click_input() 关闭对话框,但不会像手动单击“打开”按钮那样显示下一个对话框。有任何想法吗?我猜这个软件质量差有很多原因。
在其上调用其他一些方法会产生好坏参半的结果:
【问题讨论】:
标签: python ui-automation pywinauto