selenium定位和appium定位区别
Selenium定位:
 1.id(html id 唯一)
 2.name定位
 3.class定位
 4.xpath定位
Appium定位:
 1.id(app项目 不唯一)定位
 2.name定位不支持
 3.class定位支持
 4.xpath定位(不推荐),不支持绝对路径定位,支持相对路径定位
 5.列表定位
注意:
 1.某些元素,使用Appium无法直接识别,只能使用UiAutomatorViewer工具(Android SDK)进行识别
 2.UiAutomatorViewer工具和appium inspector不能同时使用
Android8.1以后SDK tools自带的uiautomator无法直接识别机器界面信息
 解决方式:
 1.截取uix资源文件
 adb shell uiautomator dump /sdcard/screen.uix
 adb pull /sdcard/screnn.uix F:/ui/screen.uix
2.截图
 adb shell screencap -p /sdcard/screen.png
 adb pull /sdcard/screen.png F:/ui/screen.png
打开uiautomator导入即可
 
install_uninstall.py
# -*- codeing = utf-8 -*-
# @Time : 2022/3/25 15:14
# @Author :su
# @File : install&uninstall.py
# @Software : PyCharm
from appium import webdriver
from time import sleep
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '9'
desired_caps['deviceName'] = '127.0.0.1:62025'
#安装app
desired_caps['app'] = r'F:\kaoyan3.1.0.apk'
desired_caps['appPackage'] = 'com.tal.kaoyan'
desired_caps['appActivity'] = 'com.tal.kaoyan.ui.activity.SplashActivity'
desired_caps['noReset'] = 'false'
# webdriver对象连接appium服务端
kydriver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
# is_app_installed        判断app是否安装的方法
sleep(2)
if kydriver.is_app_installed("com.tal.kaoyan"):
    print("安装成功")
else:
    print("安装失败")
sleep(2)
# remove_app      卸载app的方法
kydriver.remove_app("com.tal.kaoyan")
print("自动卸载成功")
print("安装卸载一次")
cancel_skip.py
# -*- codeing = utf-8 -*-
# @Time : 2022/3/25 15:51
# @Author :su
# @File : cancel_skip.py
# @Software : PyCharm
from appium import webdriver
from time import sleep
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '9'
desired_caps['deviceName'] = '127.0.0.1:62025'
#安装app
desired_caps['app'] = r'F:\kaoyan3.1.0.apk'
desired_caps['appPackage'] = 'com.tal.kaoyan'
desired_caps['appActivity'] = 'com.tal.kaoyan.ui.activity.SplashActivity'
desired_caps['noReset'] = 'false'
# webdriver对象连接appium服务端
kydriver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
# 需要等待时间
kydriver.implicitly_wait(3)     #隐式等待
# 取消按钮
kydriver.find_element('id','android:id/button2').click()
kydriver.find_element('id','com.tal.kaoyan:id/tv_skip').click()










