前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Appium+python (3) 元素定位(1)

Appium+python (3) 元素定位(1)

作者头像
孟船长
发布2018-05-18 18:30:46
1.9K0
发布2018-05-18 18:30:46
举报
文章被收录于专栏:自动化测试实战

打开问价夹下面的uiautomatorviewer:

夜神模拟器里的App后,回到uiautomatorviewer:

点击左上角的Device Screenshot,这时你的夜神模拟器页面就会显示在这里,右侧就是对应的定位信息了,我们主要依靠右下角的Node Detail信息进行定位。

如果你有selenium的基础,那接下来介绍的基本一致,只是换了个方法而已:

  • text find_element_by_name(u"视频")
  • id find_element_by_resource-id("")
  • class name

使用className获得的view一般不止一个,所以需要遍历得到的views,然后缩写搜索条件获取目标控件

代码语言:javascript
复制
# 获取一个className下的所有控件
buttons = driver.find_elements_by_class_name("")
# 点击第一个元素
buttons.pop(0).click()
# 点击最后一个元素
buttons.pop().click()
buttons.pop(-1).click()
  • accessibility id

这个方法属于appium扩展的定位方法

上图中的content-desc对应的就是accessibility_id

代码语言:javascript
复制
find_element_by_accessibility_id("")

- xpath

代码语言:javascript
复制
find_element_by_xpath("")

android uiautomator

代码语言:javascript
复制
# 注意,text里面必须是字符串,也就是说不能加u
find_element_by_android_uiautomator('new UiSelector().text("娱乐")')

此外,还有

代码语言:javascript
复制
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_tag_name()

看一段代码:

代码语言:javascript
复制
# coding: utf-8

from appium import webdriver
from time import sleep

desired_caps = {'platformName': 'Android',
                'deviceName': '127.0.0.1:62001',
                'platformVersion': '23',
                'appPackage': 'com.tencent.news',
                'appActivity': 'com.tencent.news.activity.SplashActivity',
                'unicodeKeyboard': True,
                'resetKeyboard': True}
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
# 跳过广告
sleep(5)
# 用text定位-点击视频
driver.find_element_by_name(u"视频").click()
# 点击娱乐
driver.find_element_by_android_uiautomator('new UiSelector().text("娱乐")').click()

上面的代码有两种定位方式,其实之前写了好多种,无奈它去乱点,根本不是想要定位的位置,比如我用class定位:

但是那一排的class是相同的,而且不能用find_elements_by_className()加索引的方式进行定位。大家也看到了,我的这个不知道为什么text就是不显示,似乎是应该可以显示的,不知道问题出在哪里

定位方式还有一个xpath,我也很关心这个该怎么用,但是我现在也不知道,不过似乎上面这些已经差不多可以进行用例编写了。至于xpath,看到好多网上说有点不好用,管他呢,大家稍安勿躁,下一节我们再来介绍xpath。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档