0
点赞
收藏
分享

微信扫一扫

Appium定位方式代码

芷兮离离 2022-03-25 阅读 50
python

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()
举报

相关推荐

0 条评论