如果脚本在virtualbox中运行,pywinauto找不到作为aui后端元素的子级的win32后端元素
我们有一个正在调用的WinForm ComboBox
弹出其中有Win32 ComboLBox
的{{1}}。在本地计算机上使用pywinauto默认方法时
如果脚本在virtualbox中运行,则pywinauto找不到作为aui后端元素的子级的win32后端元素
我们有一个正在调用的ListItems
弹出其中有WinForm ComboBox
的{{1}}。在本地计算机上使用pywinauto默认方法时
Win32 ComboLBox
它工作得很好。在virtualbox VM(Microsoft网站上的Win10(x64)上的MSEdge)上使用相同的代码时,pywinauto无法看到ListItems
对象下的项目。 检查列出它们,app.Dialog.ComboLBox.select('myitem')
返回字符串列表,但是ComboLBox
为空。
对于这种情况是否有任何解决方法?如今,随着所有人都转向虚拟机和云计算,我很难想象直接在桌面上使用自动化工具的情况。
答案 0 :(得分:0)
WinForms组合框的子级至少展开一次之前可能未列出。在Inspect.exe中应该看起来一样。 .texts()方法使用另一种方法来获得子代。还有一种方法.select(“ ...”)在两种情况下都可以正常工作。如果您严格需要孩子列表,只需在.children()之前执行.expand()。collapse()。
当然,这与VirtualBox或任何特定于云的事物无关。您很幸运可以在特定版本的.NET Runtime上找到它。