一、ID定位

uiautomatorviewer里面的:resource-id

driver.find_element(By.ID,"com.csks.businesses:id/tv_number").click()

二、利用index角标定位

# 利用index角标定位

# 获取多个输入框
inputs = driver.find_elements(By.CLASS_NAME,"android.widget.EditText") # 第一个输入框
inputs[0].send_keys("18602603xxx")
# 第二个输入框
inputs[1].send_keys("123123")

三、class定位

# className定位(但是不准)
driver.find_element(By.CLASS_NAME,"android.widget.TextView").send_keys("18602603XXX")

四、XPATH定位

①text定位

# Xpath,利用text定位
driver.find_element(By.XPATH,"//*[@text='DD20200422000001']").click()

②组合定位(text与id)

# Xpath,利用组合定位

driver.find_element(By.XPATH,"//*[@text='请输入密码' and @resource-id='com.csks.businesses:id/edt_password']").send_keys("123123")

五、坐标定位

# 点击页面的坐标
driver.tap([(274, 271), (650, 319)], 500)

六、寻找元素,并点击元素

def swipeUp():
'向上滑动'
width = driver.get_window_size()['width']
height = driver.get_window_size()['height']
driver.swipe(1/2*width,4/5*height,1/2*width,1/5*height) # 寻找元素,并点击
while 1<10:
try:
# 模糊定位
driver.find_element(By.XPATH,"//*[contains(@text,'规格描述:276373')]").click()
break
except:
print("未找到,继续上滑")
swipeUp()

七、模糊定位

# 模糊定位

driver.find_element(By.XPATH,"//*[contains(@text,'规格描述:276373')]").click()

八、定位Toast

# 设置参数需要加上如下参数

capabilities.setCapability("automationName", "uiautomator2");

# 定位toast

toast = driver.find_element(By.XPATH,"//*[contains(@text,'供货数量不能为空')]").text

附录:

感谢:含笑半步颠√ 的文章《Appium_Xpath定位详解

感谢:aiee 的文章《appium\selenium+python 滑动屏幕直至某元素出现

感谢:清风软件测试 的文章《appium python 点击坐标 tap

感谢:youxitou 的文章《【appium】获取toast内容

感谢:的文章《》

【Python + Appium】之元素定位总结(更新)的更多相关文章

  1. 初探appium之元素定位(1)

    无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多 ...

  2. Appium Python 五:元素定位

    总结 单个元素定位: driver.find_element_by_accessibility_id(id) driver.find_element_by_android_uiautomator(ui ...

  3. Appium Android 元素定位方法 原生+H5

    APPIUM Android 定位方式   1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement eleme ...

  4. python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)

    今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...

  5. Appium Desktop 元素定位和脚本录制功能

    Appium Desktop除了可以做Server之外还可以进行元素定位和脚本录制功能,点击放大镜按钮,进入页面设置.开始配置Desired Capabilities. 配置Desired Capab ...

  6. Appium自动化(10) - appium高级元素定位方式之 UI Automator API 的详解

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 前面介绍过根据id,clas ...

  7. appium之元素定位方法

    做App UI自动化的时候,appium使用最频繁的应该就是定位元素了. Appium常用的元素属性值: resource-id:resource-id属性一般ID是唯一的,如果元素中有ID的话,优先 ...

  8. selenium+python自动化之元素定位

    自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...

  9. 3 Python+Selenium的元素定位方法(id、class name、name、tag name)

    [环境] Python3.6+selenium3.0.2+IE11+Win7 [定位方法] 1.通过ID定位 方法:find_element_by_id('xx') 2.通过name定位 方法:fin ...

  10. Python自动化学习--元素定位

    from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www. ...

随机推荐

  1. MAPREDUCE中的序列化

    Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系....),不便于在网络中高效传输: 所以,hadoo ...

  2. 梁培利DeFi去中心化金融课程笔记2024版

    课程链接:https://space.bilibili.com/220951871/channel/collectiondetail?sid=2824381&ctype=0 讲义仓库:http ...

  3. Math.random()方法的使用及公式

    条件1:取n-m范围的随机数(不包含m) 公式1:(int)(Math.random() * (m - n) + n); 条件2:取n-m范围的随机数(包含m) 公式2:(int)(Math.rand ...

  4. WPF单行TextBox自动滚动至末尾

    根据光标位置自动滚动 textBox.CaretIndex = textBox.SelectionStart; var rect = textBox.GetRectFromCharacterIndex ...

  5. 题解:AT_abc359_c [ABC359C] Tile Distance 2

    背景 去中考了,比赛没打,来补一下题. 分析 这道题让我想起了这道题(连题目名称都是连着的),不过显然要简单一些. 这道题显然要推一些式子.我们发现,和上面提到的那道题目一样,沿着对角线走台阶,纵坐标 ...

  6. KU FPGA FLASH boot失败debug

    原因 新板子回来后,测试flash 烧录正常,但是无法BOOT,此时SPI设置为X4模式,使用内部时钟,速度90M.烧录过程不报错,校验也正常. FLASH理论支持最大速度108M,90M应该还好.另 ...

  7. 不是,大哥,咱这小门小户的,别搞我CDN流量啊

    分享是最有效的学习方式. 博客:https://blog.ktdaddy.com/ 最近遇上事儿了,老猫的小小博客网站[程序员老猫的博客]被人盗刷CDN流量了.开始的时候收到了欠费的短信也没有怎么去重 ...

  8. redis实现分片集群

    为什么要使用分片集群? 主从和哨兵可以解决高可用.高并发读的问题.但是仍存在海量数据存储.高并发写问题 分片集群特征: 集群中有多个master,每个master保存不同数据. 为master置备了后 ...

  9. Jmeter察看结果树中文乱码的处理方法

    1.接口执行成功后,在察看结果树返回的Response信息显示中文乱码 2.处理方法: 到jmeter安装目录找到\bin\jmeter.properties文件.右键记事本打开文件定位到这行代码 & ...

  10. 【Shiro】05 自定义Realm认证实现

    [前提情要] Shiro默认使用自带的IniRealm,IniRealm从ini配置文件中读取用户的信息, 大部分情况下需要从系统的数据库中读取用户信息,所以需要自定义realm. 根接口:Realm ...