appium之元素定位(uiautomatorviewer)

本文使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的操作。

环境

Java : 8

appium : 1.14.2

Android :9.0 (Genymotion模拟器)

遇到的问题

uiautomatorviewer 无法定位页面元素

运行uiautomator.bat之后报错

Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!

针对问题讨论的地址:https://testerhome.com/topics/1988

我的解决方案

因为我用的Genymotion模拟器,我选择降低Android的版本;如果是真机则安装uiautomator2 也能解决。

安装uiautomator2可以使用pip安装(必须有Python环境)

具体用法
# coding=utf-8

from appium import webdriver
import time

# 初始化appium
def init_caps():
	desired_caps = {
		#自动化测试服务,如果出现界面跳转后定位不到元素的情况,可尝试改成uiautomator2或Selendroid
		#'automationName': 'uiautomator2'
		#系统类型 Android|IOS
		'platformName': 'Android',
		#设备名称 备注:如果您使用的模拟器,就是模拟器中虚拟机的名称
        'deviceName': 'Samsung Galaxy S9',
        #系统版本 
        'platformVersion': '9.0',
        #指向模拟器的IP端口
        'udid': '192.168.34.xx:5555',
        # apk包名
        'appPackage': 'com.taobao.taobao',
        # apk的launcherActivity
        'appActivity': 'com.taobao.tao.welcome.Welcome',
        #等待超时,服务端没接收到命令将关闭appium
        'newCommandTimeout': '180',
        #等待元素出现超时时间
        'implicitlyWait': '30'
	}

	return webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

###############################  获取app的应用权限 
def get_apks(driver):
	# 点击 "去授权"
	driver.find_element_by_android_uiautomator('text(\"去授权\")').click()
	# 休眠2秒等待页面加载完成
	time.sleep(2)
	for i in range(1,6):
		# 点击 "允许"
		driver.find_element_by_android_uiautomator('text(\"允许\")').click()	

# 方法的入口
if __name__ == "__main__":
	driver = init_caps()
	# 休眠五秒等待页面加载完成
	time.sleep(5)
	get_apks(driver)
	# 休眠10秒等待页面加载完成
	time.sleep(10)
	# 退出
	driver.quit()

参考地址:Appium+python自动化4-元素定位uiautomatorviewer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值