导入driver对象
from appium import webdriver
导入手机启动参数
注:获取appPackage 和 appActivity可使用adb命令
adb shell dumpsys window w |findstr \/ |findstr name=
adb shell dumpsys window | findstr mCurrentFocus
- caps = {}
- caps["deviceName"] = "127.0.0.1:7555"
- caps["platformName"] = "Android"
- caps["appPackag"] = "com.android.settings"
- caps["appActivity"] = "com.android.settings.Settings"
脚本内启动其它app
driver.start_activity(appPackage,appActivity)
关闭app
driver.close_app() # 关闭当前操作的app,不会关闭驱动对象
关闭驱动对象
driver.quit() # 关闭驱动对象,同时关闭所有关联的app
代码:
- from appium import webdriver
- import time
- #server启动参数
- caps = {}
- #设备信息
- caps["deviceName"] = "127.0.0.1:7555"
- caps["platformName"] = "Android"
- #app信息
- caps["appPackag"] = "com.android.settings"
- caps["appActivity"] = "com.android.settings.Settings"
- driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
- driver.implicitly_wait(30)
-
- time.sleep(5)
- driver.quit()

- from appium import webdriver
- import time
- #server启动参数
- caps = {}
- #设备信息
- caps["deviceName"] = "127.0.0.1:7555"
- caps["platformName"] = "Android"
- #app信息
- caps["appPackag"] = "com.android.settings"
- caps["appActivity"] = "com.android.settings.Settings"
- driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
方法:find_element_by_id(id_value) # id_value:为元素的id属性值
- 业务场景:
- 1.进入设置页面
- 2.通过ID定位方式点击搜索按钮
代码:
- #点击设置
- driver.find_element_by_id("com.android.settings:id/search").click()
- 业务场景:
- 1.进入设置页面
- 2.点击搜索按钮
- 3.通过class定位方式点击输入框的返回按钮
代码
- #点击设置
- driver.find_element_by_id("com.android.settings:id/search").click()
- #点击返回
- driver.find_element_by_class_name('android.widget.ImageButton').click()
- *** android端xptah常用属性定位:
- 1. id ://*[contains(@resource-id,'com.android.settings:id/search')]
- 2. class ://*[contains(@class,'android.widget.ImageButton')]
- 3. text ://*[contains(@text,'WLA')]
-
- *** 模糊定位 contains(@key,value): value可以是部分值
场景: 1进入设置页面
2.点击WLAN菜单栏
代码:
- #点击wlan
- driver.find_element_by_xpath('//*[contains(@text,"WLAN")]').click()
场景:1进入设置页面
2.点击WLAN菜单栏(class定位对象列表中第三个)
代码:
- #定位一组元素
- aa=driver.find_element_by_class_name('android.widget.TextView')
- #打印数据查看
- print(type(aa))
- #取出对应的值点击
- aa.click()
场景: 1进入设置页面
2点击搜索框
3.输入1234
代码:
- #点击搜索
- driver.find_element_by_xpath(' //android.widget.TextView[@content-desc="搜索设置"]').click()
- #输入内容1234
- driver.find_element_by_id('android:id/search_src_text').send_keys(1234)
方法:clear()
场景: 1进入设置页面
2点击搜索框
3.输入1234
4.删除已输入的1234
代码:
- #点击搜索
- driver.find_element_by_xpath(' //android.widget.TextView[@content-desc="搜索设置"]').click()
- #输入内容1234
- aa=driver.find_element_by_id('android:id/search_src_text')
- aa.send_keys(1234)
- time.sleep(2)
- #删除1234
- aa.clear()
方法 text
业务场景:
1.进入设置
2.获取所有元素class为android.widget.TextView的文本内容
代码:
- text=driver.find_elements_by_class_name('android.widget.TextView')
- for i in text:
- print(i.text)
方法:location
业务场景:
1.进入设置页面
2.获取搜索按钮在屏幕的坐标位置
代码:
-
- #定位到搜索按钮
- aa=driver.find_element_by_id("com.android.settings:id/search")
- #打印搜索按钮在屏幕坐标
- print(aa.location)
结果:

- ⚠️从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动
- 方法:swipe(start_x, start_y, end_x, end_y, duration=None)
- 参数:
- 1.start_x:起点X轴坐标
- 2.start_y:起点Y轴坐标
- 3.end_x: 终点X轴坐标
- 4.end_y,: 终点Y轴坐标
- 5.duration: 滑动这个操作一共持续的时间长度,单位:ms
业务场景:
1.进入设置
2.从坐标80,1188 滑到80,249
代码:
- #从坐标80,1188 滑到80,249
- driver.swipe(80,1188,80,249,duration=1000)
1.1.10scroll滑动事件
业务场景:
1.进入设置
2.模拟手指将存储菜单滑动到WLAN菜单栏位置
代码:
- #定位存储菜单栏
- e11=driver.find_element_by_xpath("//*[contains(@text,'存储设备和 USB')]")
- #定位到WLAN菜单栏
- el2=driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
- #执行滑动操作
- driver.scroll(e11,el2)
业务场景:
1.进入设置
2模拟手指将存储菜单滑动到WLAN菜单栏位置
代码:
- #定位存储菜单栏
- e11=driver.find_element_by_xpath("//*[contains(@text,'存储设备和 USB')]")
- #定位到WLAN菜单栏
- el2=driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
- #执行滑动操作
- driver.drag_and_drop(e11,el2)
业务场景:
1.进入设置
2点击WLAN选项
- #通过元素定位方式敲击屏幕
- el=driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
- TouchAction(driver).tap(el).perform()
业务场景:
1.进入设置
2点击WLAN选项
- #通过元素定位方式敲击屏幕
- el=driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
- TouchAction(driver).tap(el).release().perform()
- #通过坐标方式按下屏幕x=155,y=250
- TouchAction(driver).press(x=155,y=250).release().perform()
业务场景:
1.进入设置
2.点击安全
3.点击屏幕锁定方式
4.绘制图案
- #往下滑动
- driver.swipe(160,684,160,221,duration=1000)
- #点击安全
- driver.find_element_by_xpath('//*[contains(@text,"安全")]').click()
- #点击屏幕
- driver.find_element_by_xpath('//*[contains(@text,"屏幕锁定方式")]').click()
- #绘制图案 1032,236 890,375 747,527 1029,527
- TouchAction(driver).press(x=1032,y=236).wait(100).move_to(x=890,y=375).wait(100).move_to(x=747,y=527).wait(100).move_to(x=1029,y=527).wait(100).release().perform()