Appium在Android无法显示界面处理方式
事情的起因是在学习Appium自动化测试过程中,使用Appium无法对B站的登录界面进行操作
也无法调用其信息。网上给出的解释是B站处于安全防护考虑,做了限制。限制有点厉害,使用特殊方法才截的屏。
以下是截图应用的控件坐标。
1、设备为小米10s,分辨率为1080x2340 屏幕密度440
查看屏幕信息adb命令:
adb shell wm size # 屏幕分辨率
adb shell wm size 540×960 # 设置屏幕分辨率
adb shell wm density # 屏幕密度
adb shell wm density 100 # 设置屏幕密度
adb shell wm size reset # 重置屏幕尺寸大小
adb shell wm density reset # 重置屏幕密度
adb shell dumpsys window displays # 屏幕通用信息
2、使用Appium 对界面对登录界面进行捕获
结果就是捕获不到这个界面
3、使用ADB命令通过坐标进行点击、输入等操作
adb shell input tap 290 710 # 点击屏幕290 710坐标
adb shell input text 11111111111 # 输入文本,以手机号为例
4、以Python 代码实现登录操作
from appium import webdriver
import os, time
os.system('chcp 65001') # 将cmd的显示字符编码从默认的GBK改为UTF-8
deviceName = os.popen("adb devices").read() # 设备名称
platformVersion = os.popen("adb shell getprop ro.build.version.release").read() # 安卓版本
appPackage = os.popen("adb shell dumpsys window w |findstr \/ |findstr name=").read() # 软件名称
desired_caps = \{"deviceName": deviceName[:-8],"platformName": "Android","platformVersion": platformVersion,"appPackage": "tv.danmaku.bili","appActivity": "tv.danmaku.bili.MainActivityV2","newCommandTimeout": 0, # 设置超时时间, 默认为60s,设置为0关闭。超时时间到后,软件将退出"ANDROID_UIAUTOMATOR": "uiautomator2"}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.hide_keyboard() # 键盘隐藏
driver.implicitly_wait(5) # 延时(全局生效)
driver.find_elements(by=By.CLASS_NAME, value='android.widget.TextView')[4].click() # 同意用户协议与隐私政策提示弹窗
driver.find_elements(by=By.CLASS_NAME, value='android.widget.ImageView')[0].click() # 左上角登录按钮
# 可以考虑下面命令写个列表然后循环或者封装成方法调用,这里方便理解直接写了。
time.sleep(5) # 界面反应时间
b = os.popen('adb shell input tap 300 710').read()
time.sleep(2)
b = os.popen('adb shell input text 1314520****').read() #输入手机号码
time.sleep(2)
b = os.popen('adb shell input tap 950 670').read() # 点击获取验证码位置
b = os.popen('adb shell input tap 280 800').read()
time.sleep(1)
verification_code = input("请输入验证码")
verification_code = 'adb shell input text %s' % verification_code
b = os.popen(verification_code).read() # 输入验证码
b = os.popen('adb shell input tap 280 800').read()
time.sleep(2)
b = os.popen('adb shell input tap 40 1150').read() # 勾选同意用户协议
time.sleep(1)
b = os.popen('adb shell input tap 500 1000').read() # 点击验证登录
Appium在Android无法显示界面处理方式相关推荐
- Android高效的EPG界面实现方式
Android高效的EPG界面实现方式 你现在没有在为怎么去实现EPG界面而烦恼呢?仔细研究下我这篇 ...
- Android 滑动显示下一层界面
Android 滑动显示下一层界面 主要activity: public class UpPage extends Activity { private Button upButton; privat ...
- java制作h5视频聊天_JAVA实现大华摄像头WEB方式实时显示视频,H5界面展示方式思路。...
JAVA实现大华摄像头WEB方式实时显示视频,H5界面展示方式思路. 2018-09-17 问题:大华IPC枪型摄像头需要在WEB中显示实时监控视频,官方提供的SDK只有C#的桌面程序访问方式. 解决 ...
- Android 8.0 学习(22) Android8.0平台Eng版本中显示界面切换闪红框
Android O平台Eng版本中显示界面切换闪红框 1.问题 Version >= Android O1 在Android O平台Eng版本中,在切换显示界面.开任何apk.操作按钮等操作时, ...
- Android Studio Design界面不显示layout控件的解决方法
Android Studio Design界面不显示layout控件的解决方法 参考文章: (1)Android Studio Design界面不显示layout控件的解决方法 (2)https:// ...
- android自定义控件不显示,解决Android Studio Design界面不显示layout控件的问题
Android Studio更新到3.1.3后,发现拖到Design中的控件在预览界面中不显示: 解决办法: 在Styles.xml中的parent="..."中的Theme前添加 ...
- Android进入欢迎界面前显示黑乎乎的或者白白的布局
Android进入欢迎界面前显示黑乎乎的或者白白的一小段 首次点开应用是这样子的: 出现黑乎乎的一片,用户体验可是极差,所以我们要誓力解决,你回头看看手机其他的应用,比如QQ,他们就没有这个黑乎乎,白 ...
- 关于 android 虚拟机显示在了界面里面,怎么把模拟器放到到android studio窗口外面这件事
关于 android 虚拟机显示在了界面里面,怎么把模拟器放到到android studio窗口外面这件事 如图所示: 解决方法: 再次重启 AndroidStudio 即可
- Android O 显示未知来源设置方式
本文链接:http://blog.csdn.net/lylddinghffw/article/details/78226010 记录:Android O的升级导致一些行为和API的变更. 检查是否同意 ...
最新文章
- python 图表_Python入门学习系列——使用Python调用Web API实现图表统计
- 怎么判断网络回路_收藏|电梯安全回路分析说明及故障判断
- Linux命令使用汇总
- java class 是否相等_Java重要技术(30)类加载器之Class类型的相等比较
- Python基础概念_6_模块
- 行健设计_广西大学行健文理学院参加2019年第七届广西大学生工业设计大赛
- 2020 China Collegiate Programming Contest Weihai Site补题部分
- 狗窝里的小日子 ...
- 【MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记】
- Appcan、apicloud、HBuilder 不同之处解析
- RoR vs. Java
- Microchip PIC系列8位单片机入门教程(七)PWM
- 捷联惯导系统学习2.3(方向余弦阵微分方程)
- 红米k20适配android q,比谷歌还快,红米K20 PRO首发安卓Q稳定版,只有华为心里苦...
- 台式机计算机怎么分割,台式机如何设置分屏
- java aspect demo_Spring AOP + Aspect 实现切面编程
- JavaScript总结笔记
- 网页上做笔记--Diigo
- 小飞鱼通达二开 值班人员手机短信通知系统 (图文)
- mysql lbs_LBS类数据服务对比分析 (一)