Appium元素定位的方式有以下几种:
- id
- name
- class
- 相对定位
- Xpath定位
- H5页面元素定位
- Uiautomator定位
常用元素定位语法(python):
find_element_by_id(‘XXXX’)
find_element_by_class_name(‘XXXX’)
find_element_by_xpath(“”)
元素操作:
点击find_element_by_ id(‘XXXX’).click()
输入文本find_element_by_ id(‘XXXX’).send_keys ()
等待延时:driver.implicitly_wait(5) #以秒为单位
结合python的完整脚本:看正文脚本模块driver.find_element_by_id('com.mydream.wifi:id/tvShare').click()
Tips:运行脚本的几个步骤
- 连接设备:使用adb connect连接设备
- 开启appium服务:双击appium的应用图标—点击start server 按钮
- 运行脚本:打开pycharm—打开对应的脚本—快捷键ctrl+shift+F10
脚本:
#!urs/bin/python
#!_*_ coding:UTF-8 _*_
from appium import webdriver
desired_caps={}
desired_caps['platformName']='Android'
desired_caps['platformVersion']='4.4.2'
desired_caps['deviceName']='127.0.0.1:62001'
desired_caps['app']=r'C:\\Users\\JMC\\Desktop\\Study\\wifibanlv.apk' #apk的路径
desired_caps['packageName']='包名'
desired_caps['appActivity']='apk对应的activity'
driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
driver.find_element_by_id('com.mydream.wifi:id/tvShare').click() #点击头条新闻
driver.implicitly_wait(5) #以秒为单位
driver.find_element_by_class_name('android.widget.ImageButton').click() #点击头条新闻页面的返回按钮
driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.TabHost/android.widget.LinearLayout/android.widget.TabWidget/android.widget.RelativeLayout[3]"
).click() #点击我页面tab
driver.implicitly_wait(5) #以秒为单位
driver.find_element_by_id('com.mydream.wifi:id/riv_head').click() #点击个人头像,打开等登陆页面
driver.implicitly_wait(10) #以秒为单位
driver.find_element_by_id('com.mydream.wifi:id/title_third_login_button').click() #点击更多按钮
driver.find_element_by_id('com.mydream.wifi:id/cacetMobile').send_keys("18059869253") #输入账号
driver.implicitly_wait(5) #以秒为单位
driver.find_element_by_id('com.mydream.wifi:id/cacetPwd').send_keys("123456") #输入密码
driver.implicitly_wait(5) #以秒为单位
driver.find_element_by_id('com.mydream.wifi:id/cbtnLogin').click() #点击登陆按钮