当前位置: 首页 > news >正文

河南郑州创建网站公司视频推广联盟

河南郑州创建网站公司,视频推广联盟,app详情页设计,wordpress获取指定分类文章很早以前#xff0c;我用uiautomatorjava实践过Android APP自动化测试#xff0c;不过今天要提的不是uiautomator#xff0c;而是uiautomator2。听起来uiautomator2像是uiautomator的升级版#xff0c;但是这两款框架仅仅是名字上比较相似#xff0c;实际上没有任何关联。…很早以前我用uiautomatorjava实践过Android APP自动化测试不过今天要提的不是uiautomator而是uiautomator2。听起来uiautomator2像是uiautomator的升级版但是这两款框架仅仅是名字上比较相似实际上没有任何关联。 一、uiautomator/uiautomator2的前生今世 项目地址https://github.com/openatx/uiautomator2 1.官方文档介绍 2.梳理一下脉络 先有的谷歌uiautomator但是只支持java 后来一个名为hexiaocong的开发者基于uiautomator封装了python版本支持python代码运行 而受其启发uiautomator2作者开发了uiautomator2。所以它们的诞生顺序应该是uiautomator(谷歌版)--uiautomator(python版)--uiautomator2 3.三款框架对比 框架 支持语言 特点 uiautomator java 谷歌开源仅支持Android xiaocong/uiautomator python 开源仅支持Android uiautomator2 python 开源仅支持Android 二、uiautomator2简介 1.项目组成 uiautomator-server主服务 minicap实现实时屏幕投屏以及实时截图 minitouch用于精确实时控制设备 atx-agent运行在设备上的驻守程序go开发用于保活设备上相关的服务 weditor类似于uiautomatorviewer专门为本项目开发的辅助编辑器 2.工作原理 1各部分职责 Python编写脚本向移动设备发起http请求 移动设备运行了封装了uiautomator2的http服务解析python脚本发起的请求并转化成uiautomator2可识别的代码 2运行过程 移动设备上运行atx-agent守护进程随后atx-agent启动uiautomator2服务默认7912端口进行监听 在PC上编写python脚本并执行相当于发送 HTTP 请求到移动设备的 server 端 移动设备通过 WIFI 或 USB 接收到 PC 上发来的 HTTP 请求执行指定的操作从而操作移动设备 三、环境搭建 1.安装uiautomator2 pip install uiautomator2 pip install -U weditor # 安装weditor 2.初始化设备 python -m uiautomator2 init 初始化成功会出现如下提示 当PC或Linux服务器连接了多台adb device的情况下“python -m uiautomator2 init”默认初始化的是所有设备若指定设备初始化则需使用“--serial”参数 python -m uiautomator2 init --serial $SERIAL  # $SERIAL为手机序列号可通过adb devices查看 3.init时都干了啥 执行“python -m uiautomator2 init”命令会自动往手机上安装一堆东西 app-uiautomator.apk app-uiautomator-test.apk atx-agent minicap minitouch 更多信息详见https://github.com/openatx/uiautomator2/wiki/Manual-Init 四、基础操作 1.连接设备 uiautomator2提供了3种连接方式 1通过WiFi连接 import uiautomator2 as u2 d u2.connect(10.0.0.1) # alias for u2.connect_wifi(10.0.0.1) print(d.info)   2通过USB连接 import uiautomator2 as u2 d u2.connect(123456f) # alias for u2.connect_usb(123456f) print(d.info)   3通过ADB WiFi连接 import uiautomator2 as u2 d u2.connect_adb_wifi(10.0.0.1:5555) # 等同于 # Shell: adb connect 10.0.0.1:5555 # Python: u2.connect_usb(10.0.0.1:5555) 2.命令行工具 1截图 uiautomator2 screenshot test.jpg   2获取当前APP报名及Activity uiautomator2 current   3卸载应用 uiautomator2 uninstall package-name # 卸载一个包 uiautomator2 uninstall package-name-1 package-name-2 # 卸载多个包 uiautomator2 uninstall --all # 全部卸载   4停止应用 $ uiautomator2 stop com.example.app # 停止一个app $ uiautomator2 stop --all # 停止所有的app 3.元素定位 1常见定位方式 ui2支持 android 中 UiSelector 类中的所有定位方式详细可以查看官网https://developer.android.com/reference/android/support/test/uiautomator/UiSelector以下仅列出几种常见的定位方式 2子元素定位及兄弟元素定位 ① 子元素定位-child #查找类名为android.widget.ListView下的Bluetooth元素 d(classNameandroid.widget.ListView).child(textBluetooth) # 下面这两种方式定位有点不准确不建议使用 d(classNameandroid.widget.ListView)\ .child_by_text(Bluetooth,allow_scroll_searchTrue) d(classNameandroid.widget.ListView).child_by_description(Bluetooth) ② 兄弟元素定位-sibiling #查找与google同一级别类名为android.widget.ImageView的元素 d(textGoogle).sibling(classNameandroid.widget.ImageView) ③ 链式调用 d(classNameandroid.widget.ListView, resourceIdandroid:id/list) \   .child_by_text(Wi‑Fi, classNameandroid.widget.LinearLayout) \   .child(classNameandroid.widget.Switch) \   .click() 3相对定位 d(A).left(B),# 选择A左边的B d(A).right(B),# 选择A右边的B d(A).up(B), #选择A上边的B d(A).down(B),# 选择A下边的B #选择 WIFI 右边的开关按钮 d(textWi‑Fi).right(resourceIdandroid:id/widget_frame) 4 Xpath定位 Java uiautoamtor中默认不支持xpath这是属于ui2的扩展功能速度会相比其它定位方式慢一些。在xpath定位中ui2中的description 定位需要替换为content-descresourceId 需要替换为resource-id # 只会返回一个元素如果找不到元素则会报XPathElementNotFoundError错误 # 如果找到多个元素默认会返回第0个 d.xpath(//*[resource-idcom.android.launcher3:id/icon]) # 如果返回的元素有多个需要使用all()方法返回列表 # 使用all方法当未找到元素时不会报错会返回一个空列表 d.xpath(//*[resource-idcom.android.launcher3:id/icon]).all() 4.元素常用API 用法示例 d(testSettings).exists d.exists(textWi‑Fi,timeout5) 5.设备交互 1单击/双击 d(textSettings).click()  # 单击 d.double_click(x, y) d.double_click(x, y, 0.1) # 双击默认时间间隔0.1s 2长按 d(textSettings).longclick()  # 长按 3滑动 # left, right, up, down d(textSettings).swipe(up, steps20)  # 元素向上滑动步长20 d(textSettings).swipe(down, steps20)  # 元素向下滑动 d(textSettings).swipe(left, steps20)  # 元素向左滑动 d(textSettings).swipe(right, steps20)  # 元素向右滑动 4拖动 d(textSettings).drag_to(textClock, duration0.25)  # 拖动到某个元素时长0.25秒 d(textSettings).drag_to(877,733)  # 拖动到屏幕某个坐标点duration时长默认0.5秒 5双指操作元素放大/缩小 d(textSettings).pinch_in()  # 缩小 d(textSettings).pinch_out()  # 放大 6等待元素出现/消失 d(textSettings).wait(timeout3.0)  # 等待元素出现 d(textSettings).wait_gone(timeout20)  # 等待元素消失返回True False,timout默认为全局设置的等待时间 7屏幕滚动 # 垂直滚动到页面顶部/横向滚动到最左侧 d(scrollableTrue).scroll.toBeginning() d(scrollableTrue).scroll.horiz.toBeginning() # 垂直滚动到页面最底部/横向滚动到最右侧 d(scrollableTrue).scroll.toEnd( d(scrollableTrue).scroll.horiz.toEnd() # 垂直向后滚动到指定位置/横向向右滚动到指定位置 d(scrollableTrue).scroll.to(description指定位置) d(scrollableTrue).scroll.horiz.to(description指定位置) # 垂直向前滚动横向同理 d(scrollableTrue).scroll.forward() # 垂直向前滚动到指定位置横向同理 d(scrollableTrue).scroll.forward.to(description指定位置) # 滚动直到System元素出现 d(scrollableTrue).scroll.to(textSystem) 8文本框操作 d.send_keys(test) d.clear_text()  # 清空输入框 9toast操作 # 获取toast,当没有找到toast消息时返回default内容 d.toast.get_message(timout5,defaultno toast) # 清空toast缓存 d.toast.reset() 10监控操作 # 移除ANR的监控 d.watcher.remove(ANR) # 移除所有的监控 d.watcher.remove() # 开始后台监控 d.watcher.start() d.watcher.start(2.0) # 默认监控间隔2.0s # 强制运行所有监控 d.watcher.run() # 停止监控 d.watcher.stop() # 停止并移除所有的监控常用于初始化 d.watcher.reset() 更多api详见https://github.com/openatx/uiautomator2 五、weditor元素定位 1.启动weditor服务 python -m weditor 2.访问weditor 默认端口17310访问地址http://localhost:17310/手机连接PC确保已开启USB调试模式点击Connect连接设备当Connect图标变为绿色表示连接成功。 3.界面调试 weditor提供了所操作即所得式的元素定位方式当双击屏幕上的图标或按钮weditor界面右侧的Coding框会同步展现元素操作的代码同时手机界面也会相应同步切换页面。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.yutouwan.com/news/487800/

相关文章:

  • 珠海建设网站公司乐清本地生活服务平台
  • 景泰县做网站网站开发 项目章程
  • 如何在百度做推广长沙优化排名
  • 住房和城乡建设部网站焊工查询前端和后端哪个前景好
  • 免费网上咨询医生是哪个网福州短视频seo网络
  • 医疗网站建设讯息互联网营销师挣的是谁的钱
  • 网站怎么做背景建设个网站从哪里盈利
  • 南通市城乡和住房建设局网站楚风网站建设工作室
  • 旅游网站建设费用wordpress如何设置字体大小
  • 资源网站很难做wordpress留言簿
  • 电商运营seo是什么北京外包seo公司
  • 网站开发及运营成本网站建设新闻稿
  • 新手建网站什么类型好hishop
  • 怎么做盗版视频网站wordpress账户页添加选项卡
  • 网站开发技术部经理素质模型网站5g空间
  • 深圳微商城网站制作联系电话单位网站用途类型
  • 潍坊网站制作推广WordPress ajax 跨域
  • 重庆哪家网站wordpress被攻击
  • 南宁网络推广平台有哪些宜宾网站优化
  • 厦门市建设局加装电梯公示网站网站建设平台有哪些
  • 网站域名重要吗网站 建设可行性报告
  • php的网站有哪些wordpress 注册 填写密码错误
  • 谷歌怎么把两个网站做反链淘宝运营培训课程有用吗
  • 免费网站看完你会回来感谢我的网站优化与seo的区别
  • 站酷网在线官网全国定制网站服务器云主机
  • 织梦 帝国 学校网站社保服务个人网站
  • 做电商排名网站网站建设文化平台
  • 手机怎么做销售网站济南网站优化推广公司电话
  • 用源码建设网站网页美工设计论文
  • 企业门户网站建设咨询新浪短网址生成器