Appium基础篇7

编程入门 行业动态 更新时间:2024-10-25 22:32:09

Appium<a href=https://www.elefans.com/category/jswz/34/1770030.html style=基础篇7"/>

Appium基础篇7

这篇开始陆续介绍各种元素定位方式,如果学习过Selenium的朋友,就很清楚Selenium有八种方式支持元素定位。其实在appium也有多中方式支持元素定位,有些定位方法是共有的,有些定位方式只能在Android,有些定位方法只能在iOS上,当然本系列不讨论iOS的任何东西,只关注安卓。

1.看下面这个图, 如何定位

问题描述:

       用UI automator viewer方法,推荐、热点、小说,三个tab都是采用同一个id,所以,这三个元素就不同采用id来定位。之前看过一些相关文档,说text=‘推荐’,这里text相当于selenium中的find_element_by_name,OK,那么我就用by name,结果报错:Locator Strategy 'name' is not supported for this session。查 阅资料,才发现appium在某一个新版本后就不支 持by name的定位方法,而是by_android_uiautomator方式,具体解决方案参考:

2.解决办法

import osimport time
from appium import webdriverapk_path = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))  # 获取当前项目的根路径desired_caps ={}
desired_caps['platformName'] = 'Android' #设备系统
desired_caps['platformVersion'] = '6.0.1' #设备系统版本
desired_caps['deviceName'] = 'KIW-AL10' #设备名称# 测试apk包的路径
desired_caps['app'] = apk_path + '\\app\\shoujibaidu.apk'
# 不需要每次都安装apk
desired_caps['noReset'] = True
# 应用程序的包名
desired_caps['appPackage'] = 'com.baidu.searchbox'
desired_caps['appActivity'] = 'com.baidu.searchbox.SplashActivity'driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)#启动app
time.sleep(5) #app启动后等待5秒,方便元素加载完成
# 根据元素id来定位
# 点击“热点”频道
#hot = driver.find_element_by_id('com.baidu.searchbox:id/tab_indi_title')
hot = driver.find_element_by_android_uiautomator("text(\"热点\")")
hot.click()
# 点击“推荐”频道
rec = driver.find_element_by_android_uiautomator("text(\"推荐\")")
rec.click()
driver.quit()
测试结果,运行成功,当我们遇到上面那种报错,就换成这种元素定位方式。

更多推荐

Appium基础篇7

本文发布于:2024-03-24 00:07:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1744460.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基础   Appium

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!