1.元素定位
appium元素定位方式跟selenium是一样的
- 通过appium客户端启动服务器自动连接手机之后,进入对应的被测app以及界面
- app有不同的界面和不同的功能
- app的界面主要是以元素构成
- 需要对界面功能进入自动化测试就一定要定位该界面元素执行对应的操作方法
对手机app的界面进行元素定位的方式,同样跟selenium的定位方式一致
from selenium.webdriver.common.by import By
八大定位方式:
class By: """Set of supported locator strategies.""" ID = "id" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" NAME = "name" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"
一般定位方式:
- 使用xpath定位
- 根据xpath具体的元素文本值进行手写定位元素
-
#通过手写xpath定位文本内容进行元素操作,可以解决90%以上的元素定位问题 driver.find_element(By.XPATH,"//*[@text='显示']").click()
- 通过id定位
- 前提是界面元素中的id是唯一的,如果有多个元素id一致的,name无法进行定位操作
- 解决方案:可以使用driver.find_elements(By.ID,"android:id/title").click(),返回列表,找到具体需要操作的元素对象的下标
-
#通过id进行定位元素 #driver.find_element(By.ID,'android:id/title').click() #默认点击当前界面第1个id为android:id/title值的元素 print(driver.find_elements(By.ID,'android:id/title')) driver.find_elements(By.ID,'android:id/title')[3].click() print(len(driver.find_elements(By.ID,'android:id/title')))