控件的虚拟化
在进行桌面自动化的时候,有时候会遇上目标控件无法通过对象识别的方式识别的情况。这个时候可以通过虚拟化整个控件来完成操作,也就是说,在运行时动态的为整个控件生成虚拟控件,这个虚拟控件的大小位置与实际的控件都一样。有了这个控件,就可以用虚拟控件的方式操作这个控件了。
举例说明它的实际应用场景。某个应用的工具条是自绘制的,使用对象识别只能识别到整个工具条,它的每个按钮是包含文字的一个图片。为了点击工具条的某个按钮,可以直接在获得对象后调用getVirtual()
方法,不传任何参数,它会返回与这个控件相同的虚拟控件对象。
虚拟控件提供了clickVirtualText()
的API,因此我们通过按钮上的文本内容来点击,假设目标按钮上的内容为“打开”,那么在添加工具条控件后,我们可以使用以下代码来点击该控件:
JavaScript
Python
await model.getWindow("ToolBar").getVirtual().clickVirtualText('打开');
model.getWindow("ToolBar").getVirtual().clickVirtualText('打开')
这样,就无需在模型中为这个控件创建虚拟控件也能使用它了。