【发布时间】:2021-07-04 02:55:44
【问题描述】:
我正在尝试使用 pywinauto 自动化 Visual Basic 应用程序,后端为“win32”。除了从其中一个组合框中选择一个项目之外,我能够处理所有事情。这个特定的组合框取决于另一个组合框的选择
代码如下:
app.ThunderRT6MDIForm.xxxxx.ComboBox3.select("abc") # this correctly selects from the combobox
app.ThunderRT6MDIForm.xxxxx.ComboBox4.select(1) #This one gives error
同样的错误:
IndexError: Combobox has 0 items, you requested item 1 (0 based)
控制标识符返回:
ComboBox - 'abc' (L136, T206, R376, B227)
| ['ComboBox3', 'abc co-brandingComboBox2']
| child_window(title="abc", class_name="ThunderRT6ComboBox")
|
| | Edit - '' (L139, T234, R356, B249)
| | ['abc co-brandingEdit10', 'Edit12']
| | child_window(class_name="Edit")
ComboBox - '' (L136, T157, R376, B178)
| ['4', 'ComboBox4']
| child_window(class_name="ThunderRT6ComboBox")
| |
| | Edit - '' (L139, T160, R356, B175)
| | ['5', 'Edit14']
| | child_window(class_name="Edit")
【问题讨论】:
-
这似乎是基于您尝试按索引选择一个项目的错误,但组合框中有 0 个项目,因此索引 1 处没有任何内容。您可能必须先触发该事件填充第二个组合框
-
@majita 第一个组合框 (Comboboxx3) 在尝试第二个组合框 (Combobox4) 之前已正确填充
-
在这些操作之间添加
time.sleep(2)后是否有效? -
@VasilyRyabov 不,即使添加睡眠时间也不起作用
-
@VasilyRyabov 我现在已经在问题中添加了控制标识符
标签: pywinauto