如图:启动Appium连接安卓设备,点击图像其中一个控件,显示该控件信息,如图所示,该控件仅支持使用id或者xpath来进行定位
1、ID:每个控件一般都会有自己的id属性
2、xpath:为控件的分布绝对路径,是为最后的定位方式,其它属性可能会出现无法定位,但它肯定可以,如果出现无法定位,那么一般为xpath输入错误,或者界面还没有切换到改xpath存在界面
3、link_tes:精确定位,就是该控件里面test属性的文字有什么,这里就需要输入什么,比如是“百度新闻”,这里就要输入“百度新闻“
4、partial_link_test:模糊定位,就是该控件里面test属性的文字有什么,这里就只需要输入其中文字即可,比如是“百度新闻”,这里就要输入“新闻“即可
5、name:据说已经放弃了该定位方式,我没有使用过,这里记一下
6、tag_name:一般为from属性类型的输入框,定位方式,也少用,知道就可以了
7、class_name:如图一的拥有属性的框里面,class属性,通过该定位方式也可以定位到控件,但需要支持,像图一,它并不在可使用属性里面,所以表明它不支持定位得到
8、css_selector:但一个控件有多个class值时使用这个来进行定位,与class_name无太大区别,只是class_name用来定位控件只含一个class值,而css_selector用来定位含有多个class值,它们输入的值也是一样的
主要包含这八种定位方式:用的最多的就是xpath,其次就是id,但以定位速度而言,xpath是为最慢、也可能出现超时等等异常,但它却是最万能的定位方式,能不使用xpath定位就不用它
通过webdriver.py看到,这些定位方式最终都是通过find_element(by=(定位方式))来进行定位的,都是进行过优化可读后给我们编写人员进行编码,所以我们后续为了更方便和review,也可以再次优化成:find_xpath等等自己认为的优化方式进行再次优化