前面以计算器为例子,UIAutomation可以轻松实现。但在实际操作中,不可能就能得到所有元素的唯一属性,很多时候是什么都没有,或者是大家都用一样的名字。这样定位就不容易实现。
以QQMusic为例,选择歌手后会出现歌曲列表。但是,通过UISpy根本找不到唯一的属性,如图x-x所示。
(图x-x 定位第一首歌曲)
从上图可以看出,第一首歌只提供一个processId的属性,但是该属性在QQmusic里几乎所有元素都一样,所以不能用来定位。该问题提供一种解决方案,拖动UIAutomation界面的Properties下拉滚动条,可以看到出现元素的坐标,那么是否可以用过坐标来定位呢?如图x-xs所示。
(图x-x 元素坐标)
在UIAutomation里面提供一个click(x,y,waittime)的方法。我们可以尝试坐标定位。代码如下:
65import subprocess
import uiautomation
import time
#打开QQMusic
subprocess.Popen('C:\Program Files (x86)\Tencent\QQMusic\QQMusic.exe')
time.sleep(2)
#定位主界面
musicwindow = uiautomation.WindowControl(searchDepth=1, Pro