Appium+Python自动化 2 定位元素方式
1、找到 Android SDK安装路径tools 下面的 uiautomatorviewer.bat,如下截图

2、点击uiautomatorviewer.bat进行启动,左上角一共四个按钮,作用分别是打开本地文件、dump页面、dump压缩格式的页面、保存;启动后点击左上角第三个图标进行真机界面的呈现。

3、uiautomatorviewer.bat 连接真机,获取手机屏幕截图,会出各种报错信息,超时的情况出现较多,连接不稳定,,如截图情况

针对这个情况,我们可以通过wifi连接手机,具体步骤如下:
①用USB线连接上你的Android手机 (输入 adb devices 查看设备是否连接上)

② 打开cmd命令窗口,输入: adb tcpip 5555

③启动手机的ADB服务端口(即cmd命令窗口),输入命令: adb shell ifconfig 看下你的手机IP地址,注意是WIFI哈

④在电脑上输入: adb connect IP地址 就可以通过WIFI连接手机了。

⑤手机wifi连接成功后,在uiautomatorviewer中,点击第二个或第三个图bioat,出现下面截图

弹窗中,可以选择直接连接真机,也可以选择通过wifi连接,为了避免USB和手机连接的不稳定性,所以,我习惯选择红框中 wifi方式连接,连接成功后,出现手机屏幕截图,如下:

注:在wifi连接时,,可能出现下面截图情况:

针对这个问题,网上有很多解决办法,如:①这是android 8.0导致的问题,需要更新 uiautomatorviewer 源码才能解决,但是由于不知道怎么更改源码,所以就更换一个系统版本低一点的手机
不过,我建议先多连接几次试试,如果还连接不到,再将uiautomatorviewer关闭后,重新启动,再连接试试(因为,我出现上面情况,多次连接都失败了,重新启动了uiautomatorviewer,就成功了。。)
Appium+Python自动化 2 定位元素方式的更多相关文章
- Appium+python自动化-查看app元素属性
本文转自:https://www.cnblogs.com/yoyoketang/p/7581831.html 前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道 ...
- Appium+python自动化3-定位元素
3.1常用定位方法讲解 对象定位是自动化测试中很关键的一步,也可以说是最关键的一步,毕竟你对象都没定位那么你想操作也不行.所以本章节的知识我希望大家多动手去操作,不要仅仅只是书本上的知识,毕竟这个我只 ...
- appium+python自动化32-android_uiautomator定位进阶版
前言 上一篇介绍uiautomator的定位方式都是类似这种'new UiSelector().xxx("xxx")',看起非常长,我也记不住,这很不python.于是本篇优化了定 ...
- appium+python自动化30-list定位(find_elements)
前言 有时候页面上没有id属性,并且其它的属性不唯一,平常用的比较多的是单数(element)的定位方法,遇到元素属性不唯一,就无法直接定位到了. 于是我们可以通过复数(elements)定位,先定位 ...
- appium+python自动化31-android_uiautomator定位
前言 appium就是封装android的uiautomator这个框架来的,所以uiautomator的一些定位方法也可以用 text 1.通过text文本定位语法 new UiSelector() ...
- appium+python自动化28-name定位
前言 appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了 name定位报错 1.最新版appium V1.7用name定位,报错: selenium.co ...
- appium+python自动化34-获取元素属性get_attribute
获取text # coding:utf-8 from appium import webdriver from time import sleep desired_caps = { 'platform ...
- appium+python自动化58-xpath定位
基本属性定位 以淘宝app为例,定位左上角扫一扫按钮 1.可以通过text文本定位到 //*[@text='text文本属性'] # 定位text driver.find_element_by_xpa ...
- Appium+python自动化28-name定位【转载】
本篇转自博客:上海-悠悠 前言 appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了 一. name定位报错 1.最新版appium V1.7用name定位 ...
随机推荐
- 9Linux_LVM_iptables
LVM 创建物理卷 卷组 逻辑卷 格式化 挂载 扩容 缩小 快照 删除逻辑卷
- Ubuntu16.04 导入tensorflow报错
错误1:Traceback (most recent call last): File "/home/lwc/anaconda3/lib/python3.6/site-packages/t ...
- ---Ubuntu 16.04 server 不能关机问题解决
https://serverfault.com/questions/712928/systemctl-commands-timeout-when-ran-as-root Failed to start ...
- laravel5.6框架中session的使用
从session中获取数据 $value = $request->session()->get('key', 'default'); 冲session中获取所有数据 $data = $re ...
- Matplotlib-动画
Animation 动画 定义方程 参数设置 # Animation 动画 # 定义方程 # 使用matplotlib做动画也是可以的,我们使用其中一种方式,function animation来说说 ...
- python3列表(元组)练习
列表和元组一起练习l = [] 或者 li = list() 列表表示t = () 元组表示,元组不能修改,元组中只有两个方法 count().index(),同列表相同 li = [11,22,33 ...
- linux下redis的安装方法
一.Linux环境下安装Redis Redis的官方下载网址是:http://redis.io/download (这里下载的是Linux版的Redis源码包) Redis服务器端的默认端口是6 ...
- 安装SQL server 2008 R2和QL server 2008,与SQL server 2008升级SQL server 2008 R2
安装SQL server 2008 R2和由SQL server 2008升级SQL server 2008 R2 前提条件: 由SQL server2008 升级SQL server2008 R2 ...
- c# System.Console
System.Console类公开了和操作控制台相关的有用的静态字段和静态方法.下面是System.Console中一些较为重要的方法. public static void Beep()该方法播放蜂 ...
- cuts
1.cuts .replacename.fasta..replacename.fasta..replacename.fasta.cut.list awk 'system("mv Dme49. ...