Python pywinauto中的自定义组合框识别
我有下面的自定义组合框 我试图从字段中选择Python pywinauto中的自定义组合框识别,python,pywinauto,Python,Pywinauto,我有下面的自定义组合框 我试图从字段中选择item或从ComboboxWrapper获取itemcount,但我猜pywinauto无法识别对象 我不能使用auto\u id=CheckboxEdit,因为它不是唯一的,并且我们在框架中有6个组合框 combobox = app.Dialog.child_window(auto_id="AgrementTypeFilter", control_type="ComboBox").wrapper_object() comboitems = combo
item
或从ComboboxWrapper
获取itemcount
,但我猜pywinauto
无法识别对象
我不能使用auto\u id=CheckboxEdit
,因为它不是唯一的,并且我们在框架中有6个组合框
combobox = app.Dialog.child_window(auto_id="AgrementTypeFilter", control_type="ComboBox").wrapper_object()
comboitems = combobox.item_count()
有人能检查一下吗?塔克斯
Custom - '' (L-1904, T328, R-1750, B374)
['', 'Custom', '0', '1', 'Custom0', 'Custom1']
child_window(auto_id="AgrementTypeFilter", control_type="Custom")
|
| Static - 'Agreement Type' (L-1900, T330, R-1754, B346)
| ['Static', 'Agreement TypeStatic', 'Agreement Type']
| child_window(title="Agreement Type", control_type="Text")
|
| Custom - '' (L-1900, T350, R-1754, B372)
| ['2', 'Custom2', 'Agreement TypeCustom']
| child_window(auto_id="Combo", control_type="Custom")
| |
| | ComboBox - '' (L-1900, T350, R-1754, B372)
| | ['ComboBox', '3', 'ComboBoxCCP']
| | child_window(auto_id="CheckBoxEdit", control_type="ComboBox")
如果每个自定义组合框包含一个标准组合框,则需要解决的问题很少:
found\u index
标准查找第一个组合框(例如)custom_combo = app.Dialog.child_window(auto_id="AgrementTypeFilter", control_type="Custom", found_index=0)
real_combobox = custom_combo.child_window(auto_id="CheckBoxEdit", control_type="ComboBox").wrapper_object()
real_combobox.item_count()
另一种方法是,如果名称不同,则使用最佳匹配名称:
combobox = app.Dialog.ComboBoxCCP.wrapper_object()
combobox.item_count()
最后,还可以枚举此控件类型的所有子体:
comboboxes = app.Dialog.descendants(control_type="ComboBox")
target_combobox = [combo for combo in comboboxes if combo.item_count() == 12][0]
方法
subjects()
将返回经过筛选的包装器列表。然后很容易迭代它并找到目标代码。第一个代码可以工作,但它只返回1个项目计数,如下所示。该组合框中有12项。['','CCP']同样对于这段代码,我们可以为对象“ComboBoxCCP”迭代这段代码吗。如果是这样的话,我们可以:combobox=app.Dialog.ComboBoxCCP.wrapper\u object()combobox.item\u count()通常可以为以下最佳匹配名称添加数字:ComboBoxCCP1
,ComboBoxCCP2
等。但通常它只适用于控件类型,如ComboBox1
、ComboBox2
等。而且ComboBox0
和ComboBox1
将匹配相同的第一个组合框(历史设计).在最后一段代码中添加了12项简单迭代+筛选。我尝试了上面的简单迭代代码,但它返回的项超出了范围,因为它只有1条记录。net属性检索控件的正确内容。如何在代码中使用“Itemssource”。对于组合框,我可以“获取属性”,也可以使用“遗留属性”,但找不到该属性。