事情的起因是在学习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无法显示界面处理方式相关推荐

  1. Android高效的EPG界面实现方式

                                               Android高效的EPG界面实现方式        你现在没有在为怎么去实现EPG界面而烦恼呢?仔细研究下我这篇 ...

  2. Android 滑动显示下一层界面

    Android 滑动显示下一层界面 主要activity: public class UpPage extends Activity { private Button upButton; privat ...

  3. java制作h5视频聊天_JAVA实现大华摄像头WEB方式实时显示视频,H5界面展示方式思路。...

    JAVA实现大华摄像头WEB方式实时显示视频,H5界面展示方式思路. 2018-09-17 问题:大华IPC枪型摄像头需要在WEB中显示实时监控视频,官方提供的SDK只有C#的桌面程序访问方式. 解决 ...

  4. Android 8.0 学习(22) Android8.0平台Eng版本中显示界面切换闪红框

    Android O平台Eng版本中显示界面切换闪红框 1.问题 Version >= Android O1 在Android O平台Eng版本中,在切换显示界面.开任何apk.操作按钮等操作时, ...

  5. Android Studio Design界面不显示layout控件的解决方法

    Android Studio Design界面不显示layout控件的解决方法 参考文章: (1)Android Studio Design界面不显示layout控件的解决方法 (2)https:// ...

  6. android自定义控件不显示,解决Android Studio Design界面不显示layout控件的问题

    Android Studio更新到3.1.3后,发现拖到Design中的控件在预览界面中不显示: 解决办法: 在Styles.xml中的parent="..."中的Theme前添加 ...

  7. Android进入欢迎界面前显示黑乎乎的或者白白的布局

    Android进入欢迎界面前显示黑乎乎的或者白白的一小段 首次点开应用是这样子的: 出现黑乎乎的一片,用户体验可是极差,所以我们要誓力解决,你回头看看手机其他的应用,比如QQ,他们就没有这个黑乎乎,白 ...

  8. 关于 android 虚拟机显示在了界面里面,怎么把模拟器放到到android studio窗口外面这件事

    关于 android 虚拟机显示在了界面里面,怎么把模拟器放到到android studio窗口外面这件事 如图所示: 解决方法: 再次重启 AndroidStudio 即可

  9. Android O 显示未知来源设置方式

    本文链接:http://blog.csdn.net/lylddinghffw/article/details/78226010 记录:Android O的升级导致一些行为和API的变更. 检查是否同意 ...

最新文章

  1. python 图表_Python入门学习系列——使用Python调用Web API实现图表统计
  2. 怎么判断网络回路_收藏|电梯安全回路分析说明及故障判断
  3. Linux命令使用汇总
  4. java class 是否相等_Java重要技术(30)类加载器之Class类型的相等比较
  5. Python基础概念_6_模块
  6. 行健设计_广西大学行健文理学院参加2019年第七届广西大学生工业设计大赛
  7. 2020 China Collegiate Programming Contest Weihai Site补题部分
  8. 狗窝里的小日子 ...
  9. 【MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记】
  10. Appcan、apicloud、HBuilder 不同之处解析
  11. RoR vs. Java
  12. Microchip PIC系列8位单片机入门教程(七)PWM
  13. 捷联惯导系统学习2.3(方向余弦阵微分方程)
  14. 红米k20适配android q,比谷歌还快,红米K20 PRO首发安卓Q稳定版,只有华为心里苦...
  15. 台式机计算机怎么分割,台式机如何设置分屏
  16. java aspect demo_Spring AOP + Aspect 实现切面编程
  17. JavaScript总结笔记
  18. 网页上做笔记--Diigo
  19. 小飞鱼通达二开 值班人员手机短信通知系统 (图文)
  20. mysql lbs_LBS类数据服务对比分析 (一)

热门文章

  1. 《GIT教程-廖雪峰》笔记
  2. 【JS案例】分页器——使用原生JavaScript实现
  3. 如何安装nginx第三方模块--add-module
  4. Excel 自定义序列
  5. Python time time()方法-菜鸟教程
  6. 16秋计算机科学与技术鲁嘉华数组作业
  7. 将多个文件压缩成gzip,将gzip解压成多个文件
  8. python 贴吧自动回复_python 几行代码实现自动回复功能
  9. 无人驾驶车辆规划+轨迹跟踪控制学习笔记(1)
  10. spring自动装配原理