appium,元素定位和元素操作,使用uiautomatorviewer
时间:2021-08-10
本文章向大家介绍appium,元素定位和元素操作,使用uiautomatorviewer,主要包括appium,元素定位和元素操作,使用uiautomatorviewer使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
###
定位说三种定位:id,class,xpath
###
操作说3种,点击,输入,获取元素值,
###
代码示例:
from appium import webdriver import time import unittest class Test_Demo(unittest.TestCase): def setUp(self): desired_caps={} desired_caps['platformName']='Android' desired_caps['platformVersion']='6.0' desired_caps['deviceName']='emulator-5554' desired_caps['noReset']='true' # 使用这个,就会记住上一次你的点击记录, desired_caps['appPackage']='com.tencent.news' desired_caps['appActivity']='com.tencent.news.activity.SplashActivity' desired_caps['dontStopAppOnReset']='true' self.driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) time.sleep(8) def tearDown(self): pass # driver.quit() #退出app def test_search_demo(self): self.driver.find_element_by_id("com.tencent.news:id/home_channel_search_box").click() self.driver.find_element_by_class_name("android.widget.EditText").send_keys("股票期权") self.driver.find_element_by_xpath("//*[@resource-id='com.tencent.news:id/search_history_title']").click() self.driver.implicitly_wait(5) text_ele = self.driver.find_elements_by_id("com.tencent.news:id/title_text") for item in text_ele: print(item.text) # print("text", text_ele) if __name__ == '__main__': unittest.main()
###
代码解释:
注意1,desired_caps['noReset']='true' # 使用这个,就会记住上一次你的点击记录,比如同意协议,不进行更新,这样的弹框选择
注意2,desired_caps['dontStopAppOnReset']='true',加上这个,就不用每次都重新启动app了,这样会大大的提高调试代码的效率,很重要,
注意3,self.driver.implicitly_wait(5),隐式等待,这个很重要,有很多时候你明明是定位对了,但是就是报错找不到元素,那就试试等待,一般会是这个问题,
注意4,元素的定位,定位方法有很多,到时候你再学学,
注意5,元素的操作,操作的方法有很多,到时候你再学学,
###
###
原文地址:https://www.cnblogs.com/andy0816/p/15125769.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- String类的equals方法
- 必须同时重写hashcode和equals方法的原因
- Springboot中使用Redis的发布/订阅模式
- Java 几种排序算法 与时间空间复杂度
- JAVA程序员必须要学会的网络知识
- 计算机网络学习--数据链路层
- 带你快速了解原码、反码、补码,搞定进制转换
- Python语言学习笔记——简介
- 三行代码,OpenCV轻松生成19种色彩风格图像
- Java对象的结构与对象在内存中的结构
- Spring框架源码分析(IoC):Resource、ResourceLoader和容器之间的关系
- Spring框架源码分析(IoC):BeanFactory和ApplicationContext容器家族
- spring框架通过xml以及注解方式注册BeanDefinition的流程全链路分析
- Java后端面试学习知识总结——GC
- Java后端面试学习知识总结——JVM