自动化测试来说,核心技能就是对象的定位。不管是 web 页面上的一个
按钮或输入框,还是移动 app 上的一个按钮或输框,我们要想对其进行点击或输入操作,前提是要先找到这个对象。对于手工测试来说,是由测试人员来完人了,人通过眼睛与大脑来识别一个按钮或输入框,但自动测试工具没有这种能力,但是一个对象一定会有一些属性(如 id、class 等),自动化测试工具就是靠着这些属性来识别和查找对象。webdriver 提供了八种元素定位方法:
l id
l name
l class name
l tag name
l link text
l partial link text
l xpath
l css selector
在 Python 语言中对应的定位方法如下:
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()
一组元素定位的方法如下:
find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text()
find_elements_by_xpath()
find_elements_by_css_selector()
Appium 完全继承了 WebDriver 中所定义的这些方法,除此之外对其进行了扩展,以便适合移动端对象的定位与操作
定位的工具
uiautomatorviewer:Android SDK自带的一个工具,在tools目录下
monitor:Android SDK自带的一个工具,在tools目录下
Appium Inspector:Appium自带的一个功能,只有mac下可以使用该功能
定位详解
通过id定位
(取resource-id的值):
driver.find_element_by_id("com.wuba.zhuanzhuan:id/azo")
也可以直接用id后面的内容driver.find_element_by_id("azo")