pywinautox切换qt程序的选项卡时候,通过select()选择有可能会报空指针异常,但是texts()却能正确打印选项卡列表,有两种方式解决qt的tab无法正常通过select切换。
1.模拟鼠标,也就是硬性模拟click_input,缺点是会挪动鼠标,而且窗口不可见时无效。
2.通过invoke方法,选项卡项的element.invoke()方法可以点击指定选项卡。
然后,可以读取选项卡项目的LegacyIAccessible 属性的State 值,如果为0x100004说明被选中。
如果这个不准确,可以对UIA_TabControl(选项卡组)检查LegacyIAccessible.Name值,被选中后,选项卡组的LegacyIAccessible.Name会变成已选中tab的名称。